• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Go语言:判断IP是否合法是IPv4还是IPv6

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

原文链接:https://www.codenong.com/cs106100823/

package main

import (
    "fmt"
    "net"
)

// 0: invalid ip
// 4: IPv4
// 6: IPv6
func ParseIP(s string) (net.IP, int) {
    ip := net.ParseIP(s)
    if ip == nil {
        return nil, 0
    }
    for i := 0; i < len(s); i++ {
        switch s[i] {
        case \'.\':
            return ip, 4
        case \':\':
            return ip, 6
        }
    }
    return nil, 0
}

func test(s string) {
    ip, n := ParseIP(s)
    fmt.Printf("%v %v\n", n, ip)
}
func main() {
    test("127.0.0.1")
    test("::127.0.0.1")
    test("2001:0:53ab:0:0:0:0:0")
    test("2001:0:c38c:ffff:ffff:0000:0000:ffff")
    test("2001:0:c38c:ffff:ffff::")
    test("327.0.0.1")
    test("2001:0:c38c:ffff:ffff:ffff:ffff:ffff1")
}

  输出:

4 127.0.0.1
6 ::7f00:1
6 2001:0:53ab::
6 2001:0:c38c:ffff:ffff::ffff
6 2001:0:c38c:ffff:ffff::
0 <nil>
0 <nil>

  

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap