豌豆Ai站群搜索引擎系统 V.25.10.25 网址:www.wd.chat

🗣 Wd提问: go获取ip地址

🤖 Ai回答:
在Go语言中,获取IP地址通常涉及到处理网络连接或查询系统信息。这里提供两种常见的方法来获取IP地址:

1、获取本地机器的所有IPv4和IPv6地址

你可以使用`net`包中的`Interfaces`和`Addrs`函数来获取本机所有接口(包括回环地址)上的IP地址。

go
package main

import (
fmt
net
)

func main() {
// 获取所有网络接口
ifaces, err := net.Interfaces()
if err != nil {
fmt.Println(Error getting interfaces:, err)
return
}

for _, iface := range ifaces {
// 忽略回环接口
if iface.Flags&net.FlagUp == 0 iface.Flags&net.FlagLoopback != 0 {
continue
}

addrs, err := iface.Addrs()
if err != nil {
fmt.Printf(Error getting addresses for interface %s: %v\n, iface.Name, err)
continue
}

for _, addr := range addrs {
var ip net.IP
switch v := addr.(type) {
case *net.IPNet:
ip = v.IP
case *net.IPAddr:
ip = v.IP
}

// 根据需要打印IPv4或IPv6地址
if ip.To4() != nil {
fmt.Printf(Interface %s: IPv4 %s\n, iface.Name, ip.String())
} else if ip.To16() != nil {
fmt.Printf(Interface %s: IPv6 %s\n, iface.Name, ip.String())
}
}
}
}

这段代码会列出所有活动的、非回环网络接口及其IP地址。

2、获取外部可见的IP地址

获取外部可见的IP地址通常需要向外部服务发送请求,并解析响应以提取你的公共IP地址。一个常用的免费服务是 `https://api.ipify.org`。

go
package main

import (
fmt
io/ioutil
net/http
)

func main() {
resp, err := http.Get(https://api.ipify.org)
if err != nil {
fmt.Println(Error getting IP:, err)
return
}
defer resp.Body.Close()

body, err := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Println(Error reading response body:, err)
return
}

fmt.Println(Your public IP address is:, string(body))
}

这段代码通过HTTP GET请求访问`https://api.ipify.org`,该服务返回请求者的公共IP地址。请注意,使用外部服务获取IP可能会有隐私和安全方面的考虑。

以上就是用Go语言获取IP地址的两种基本方法:一种是获取本地所有接口的IP地址,另一种是获取外部可访问的公共IP地址。

Ai作答

📣 商家广告


中国域名

广告招商

广告招商

广告招商

店名


0

IP地址: 206.57.181.223

搜索次数: 13

提问时间: 2025-11-25 06:38:23

🛒 域名购买

❓️ 热门提问

🌐 域名评估

最新挖掘

🖌 热门作画

🤝 关于我们

🗨 加入群聊

🔗 友情链接

🧰 站长工具
📢

温馨提示

本站所有 问答 均由Ai自动分析整理,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。

👉

技术支持

本站由 🟢 豌豆Ai 提供技术支持,使用的最新版: 豌豆Ai站群搜索引擎系统 V.25.10.25 搭建本站。

上一篇 54467 54468 54469 下一篇