当前位置:首页 » 《休闲阅读》 » 正文

如何使用 Go 获取你的 IP 地址

27 人参与  2024年10月08日 14:01  分类 : 《休闲阅读》  评论

点击全文阅读


一个 IP 地址(互联网协议地址)是分配给连接到网络的设备的唯一标识符,允许它们通过互联网或局域网与其他设备通信。

如何使用 Go 获取你的 IP 地址呢?

公共 IP 地址 vs 私有 IP 地址

公共 IP 地址是分配给连接互联网的设备的,用于全球访问。它对互联网上的所有人可见,并用于外部识别设备。相反,私有(本地)IP 地址用于在私有网络内识别设备,仅在该私有网络内用于通信,外部不可见。

如何在 Go 中获取公共 IP 地址

在 Go 中,可以使用 net/http 包发起 HTTP 请求,从外部 API 获取公共 IP 地址。

package mainimport (    "fmt"    "io/ioutil"    "net/http")func main() {    response, err := http.Get("https://api.ipquery.io")    if err != nil {        fmt.Println("获取公共 IP 时出错:", err)        return    }    defer response.Body.Close()    body, _ := ioutil.ReadAll(response.Body)    fmt.Println("- IP 地址:", string(body))}

如何在 Go 中获取本地 IP 地址

要获取本地 IP 地址,可以使用 net 包并检索网络接口,检查系统的本地 IP 地址。

package mainimport (    "fmt"    "net")func main() {    addrs, err := net.InterfaceAddrs()    if err != nil {        fmt.Println("出错:", err)        return    }    for _, addr := range addrs {        if ipnet, ok := addr.(*net.IPNet); ok && !ipnet.IP.IsLoopback() {            if ipnet.IP.To4() != nil {                fmt.Println("- IP 地址:", ipnet.IP.String())            }        }    }}
参考来源
https://pkg.go.dev/nethttps://www.fortinet.com/resources/cyberglossary/what-is-ip-addresshttps://en.wikipedia.org/wiki/IP_address

点击全文阅读


本文链接:http://zhangshiyu.com/post/169004.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1