龙空技术网

Golang 获取本地 IP 地址方法

路多辛 421

前言:

如今各位老铁们对“本地访问ip”可能比较注意,朋友们都需要学习一些“本地访问ip”的相关文章。那么小编同时在网上网罗了一些有关“本地访问ip””的相关知识,希望姐妹们能喜欢,各位老铁们快快来学习一下吧!

在 Golang 中,使用 net 包可以很方便地获取到本机IP地址。

借助 net.InterfaceAddrs 方法

简单示例代码如下:

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())			}		}	}}
借助 net.Dial 方法

使用 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)}

标签: #本地访问ip