如何在Go中获取本地IP地址?

我想获取计算机的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)

}

回答:

您需要遍历所有网络接口

ifaces, err := net.Interfaces()

// handle err

for _, i := range ifaces {

addrs, err := i.Addrs()

// handle err

for _, addr := range addrs {

var ip net.IP

switch v := addr.(type) {

case *net.IPNet:

ip = v.IP

case *net.IPAddr:

ip = v.IP

}

// process IP address

}

}

播放(取自util / helper.go)

以上是 如何在Go中获取本地IP地址? 的全部内容, 来源链接: utcz.com/qa/404683.html

回到顶部