通过Golang获取公网IP地址
创作时间:
作者:
@小白创作中心
通过Golang获取公网IP地址
引用
CSDN
1.
https://blog.csdn.net/IOT_AI/article/details/137447436
在Go语言中,获取当前的外网(公网)IP地址可以通过多种方法实现。其中一种常见的方法是通过访问外部服务来获取。这些服务可以返回访问者的公网IP地址,例如
httpbin.org/ip
或
ipify.org
。下面是一个简单的例子,展示了如何使用Go标准库中的
net/http
包和
io/ioutil
包来实现这一功能。
1. 示例代码
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))
}
2. 如何工作
请求外部服务:
http.Get("https://api.ipify.org")
发送一个HTTP GET请求到
api.ipify.org
,这个服务会返回访问者的公网IP地址。读取响应:
ioutil.ReadAll(resp.Body)
读取响应体的内容,该内容即为公网IP地址。输出结果:最后,程序会将获取到的公网IP地址打印出来。
3. 注意事项
- 服务依赖:这种方法依赖于外部服务(如ipify.org)。如果服务不可用,这个方法也会失败。
- 隐私考虑:发送请求到外部服务可能会暴露你的公网IP地址和其他相关信息给服务提供者。在使用这些服务时,请确保了解其隐私政策。
- 错误处理:实际使用时,请确保对
http.Get
和
ioutil.ReadAll
可能返回的错误进行适当处理。
通过这种方式,你可以轻松地在Go程序中获取当前的外网IP地址。
热门推荐
5招重燃婚姻爱火,让感情重回蜜月期
红心火龙果挑法大揭秘!
婚恋心理治疗:拯救你的婚姻焦虑
《2024青年婚恋观调查》:00后为何想早婚?
让婚姻升温的实用指南
火龙果栽培秘籍:轻松种出高产果!
从化火龙果:冬季养生的营养之选
冬日暖心火龙果创意料理教程
极具哲理性的十首诗词,哪首最有启迪性?
家庭自制甜酒酿:简单六步,轻松制作传统美味
我国仅存的八大辽代木建筑,光山西就有三处,你去过几处?
精选各类春联160副,建议收藏,总会有用得着的时候
山东济宁“逆子打妈妈”事件:家庭教育之痛
央视《逆子》揭秘:孩子打妈背后的家庭真相
山东济宁:逆子当街殴打母亲被带走,家庭教育之殇引发社会热议
新能源的这三个附加险,究竟值不值得买?
泼尼松治疗什么病?副作用有哪些?
机甲动漫排行榜前十名推荐
《魔神创造传》吹响冒险篇章:救世主边直播边拯救世界
民间故事:三娘教子
苏州东山景区必打卡:启园、雕花楼、陆巷古村全攻略
东山镇的乡村振兴新亮点:茶叶、竹艺和生态游
探秘东山镇:太湖边上的世外桃源
人工智能行动峰会在巴黎召开
日本的核心哲学文化是什么?具体怎么体现在日常生活和工作中
道德经中“知足不辱,知止不殆,可以长久”的小故事(其二)
醋泡黑豆:养生界的网红食品
美国四重病毒来袭!多地重启口罩令
应对“四重病毒”威胁:最新疫苗进展全解析
四重病毒来袭,美国公共卫生系统面临严峻考验