
在Go语言中,获取当前的外网(公网)IP地址可以通过多种方法实现。其中一种常见的方法是通过访问外部服务来获取。这些服务可以返回访问者的公网IP地址,例如 httpbin.org/ip 或 ipify.org。下面是一个简单的例子,展示了如何使用Go标准库中的net/http包和io/ioutil包来实现这一功能。
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func main() {
// 使用http.Get函数请求外部服务
resp, err := http.Get("https://api.ipify.org")
if err != nil {
fmt.Printf("请求失败: %s\n", err)
return
}
defer resp.Body.Close() // 确保关闭响应体
// 读取响应体内容
ip, err := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Printf("读取响应失败: %s\n", err)
return
}
// 输出获取到的外网IP
fmt.Printf("当前的外网IP是: %s\n", string(ip))
}http.Get("https://api.ipify.org") 发送一个HTTP GET请求到 api.ipify.org,这个服务会返回访问者的公网IP地址。ioutil.ReadAll(resp.Body) 读取响应体的内容,该内容即为公网IP地址。http.Get和ioutil.ReadAll可能返回的错误进行适当处理。通过这种方式,你可以轻松地在Go程序中获取当前的外网IP地址。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。