如何在Golang中获取本地IP地址?
发表时间: 2023-07-25 22:37
在 Golang 中,使用 net 包可以很方便地获取到本机IP地址。
简单示例代码如下:
package mainimport ( "fmt" "net")func main() { addrList, err := net.InterfaceAddrs() if err != nil { panic(err) } for _, address := range addrList { if ipNet, ok := address.(*net.IPNet); ok && !ipNet.IP.IsLoopback() { if ipNet.IP.To4() != nil { fmt.Println(ipNet.IP.String()) } } }}
使用 udp 不需要关注是否送达,只需要对应的 ip 和 port 正确,即可获取到 IP 地址。简单示例代码如下:
package mainimport ( "fmt" "net" "strings")func main() { conn, err := net.Dial("udp", "8.8.8.8:53") if err != nil { panic(err) } addr := conn.LocalAddr().(*net.UDPAddr) ip := strings.Split(addr.String(), ":")[0] fmt.Println(ip)}