赞
踩
简单示例代码如下:
package main import ( "fmt" "net" ) func main() { ip := getHostIp() fmt.Println(ip) } func getHostIp() string { addrList, err := net.InterfaceAddrs() if err != nil { fmt.Println("get current host ip err: ", err) return "" } var ip string for _, address := range addrList { if ipNet, ok := address.(*net.IPNet); ok && !ipNet.IP.IsLoopback() { if ipNet.IP.To4() != nil { ip = ipNet.IP.String() break } } } return ip }
使用 udp 不需要关注是否送达,只需要对应的 ip 和 port 正确,即可获取到 IP 地址。简单示例代码如下:
package main import ( "fmt" "net" "strings" ) func main() { ip := getHostIp() fmt.Println(ip) } func getHostIp() string { conn, err := net.Dial("udp", "8.8.8.8:53") if err != nil { fmt.Println("get current host ip err: ", err) return "" } addr := conn.LocalAddr().(*net.UDPAddr) ip := strings.Split(addr.String(), ":")[0] return ip }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。