Golang

关注公众号 jb51net

关闭
首页 > 脚本专栏 > Golang > Golang获取本地IP

Golang获取本地IP地址方法分享

作者:路多辛

这篇文章主要给大家介绍了Golang 获取本地 IP 地址方法,文中有详细的代码示例,对我们的学习或工作有一定的帮助,需要的朋友可以参考下

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

借助 net.InterfaceAddrs 方法

简单示例代码如下:

package main
import (
	"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 main
import (
	"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)
}

到此这篇关于Golang获取本地IP地址方法分享的文章就介绍到这了,更多相关Golang获取本地IP内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文