参考
获取公网ip、查看内网ip、检测ip类型、校验ip区间、ip地址string和int转换、根据ip判断地区国家运营商https://blog.csdn.net/wangshubo1989/article/details/78066344
https://studygolang.com/articles/01202
获取本机的公网ip
func main() {
conn, err := net.Dial("udp", "google.com:80")
if err != nil {
fmt.Println(err.Error())
return
}
defer conn.Close()
fmt.Println(conn.LocalAddr().String())
}
获取本机内网ip和mac
通过判断net.FlagUp标志进行确认,排除掉无用的网卡。用net.FlagLoopback排除127.0.0.1
ifaces, err := net.Interfaces()
if err != nil {
fmt.Println(err)
}
for _, iface := range ifaces {
if iface.Flags&net.FlagUp == 0 {
continue // interface down
}
if iface.Flags&a