我想获取计算机的IP地址。我使用了下面的代码,但它返回127.0.0.1
.
我想获取IP地址,例如10.32.10.111
,而不是环回地址。
name, err := os.Hostname()
if err != nil {
fmt.Printf("Oops: %v\n", err)
return
}
addrs, err := net.LookupHost(name)
if err != nil {
fmt.Printf("Oops: %v\n", err)
return
}
for _, a := range addrs {
fmt.Println(a)
}
当机器上存在多个 ip 接口时,这里有一个更好的解决方案来检索首选出站 ip 地址。
import (
"log"
"net"
"strings"
)
// Get preferred outbound ip of this machine
func GetOutboundIP() net.IP {
conn, err := net.Dial("udp", "8.8.8.8:80")
if err != nil {
log.Fatal(err)
}
defer conn.Close()
localAddr := conn.LocalAddr().(*net.UDPAddr)
return localAddr.IP
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)