addrs, err := net.InterfaceAddrs();
if err != nil {
return "",err
}
for _, addr := range addrs {
if ipnet, ok := addr.(*net.IPNet); ok && !ipnet.IP.IsLoopback() {
if ipnet.IP.To4() != nil && ipnet.IP.IsGlobalUnicast() {
return ipnet.IP.String(),nil
}
}
}
return "",errors.New("valid local IP not found")
共 16 个回复
jimmykuu
gogo
非常感谢,这是学习g语言的好地方。
gogo
我刚试了下, 如果是局域网,我想获取本机IP, 上面的方法好像不行?
polaris
试试这个
pqm1989
xingzhiyuan
大哥们你们回答之前 自己敲下代码试试好吗?
UlricQin
UlricQin
未登录用户登录之后没有跳转回来,差评,哈哈
ije
golang只能获取本机ip地址吧 如果你要获取外网的ip的话可以借助第三方或者你对外的路由器有相关api可用
ije
wangshuo
youzhengchuan
JackZR
go web iris 框架了解一下 Go Web Iris中文网 https://studyiris.com/
web 中你想要的
net/http
都会给你 认真看文档qiaotaiziqtz
一台计算机的ip有很多
可以通过下面的方式获取第一个局域网ipv4地址
yyj4399
为啥要获取本机ip地址呢?一般做网络编程,你在服务器端获取不就ok了吗?emmm...除非你想搞事情。
#狗头
jccsxx
看看我用 golang写的网站 https://887d.com/
表扬一下吧。