对于我正在开发的程序,我必须检查 IP(将我连接到 Internet 的 IP)是公共的还是私有的。为此,我需要区分 IP 是 IPv4 还是 IPv6。
我想通过 IP 的长度来检查它:
conn, err := net.Dial("udp", "8.9.10.11:2342")
if err != nil {
fmt.Println("Error", err)
}
localaddr := conn.LocalAddr()
addr, _ := net.ResolveUDPAddr("udp", localaddr.String())
ip := addr.IP
fmt.Println(ip)
fmt.Println(len(ip))
好吧,我的 IP 是 192.168.2.100,所以是 IPv4,但是 len(ip) 告诉我长度是 16,这就是 IPv6。我的错误是什么?是否存在任何其他方法来区分始终有效的 IPv4 和 IPv6?
POPMUISE
有只小跳蛙
繁华开满天机
相关分类