如何使用 Go 获取你的 IP 地址(推荐)
目录
- 公共 IP 地址 vs 私有 IP 地址
- 如何在 Go 中获取公共 IP 地址
- 如何在 Go 中获取本地 IP 地址
- 参考来源
一个 IP 地址(互联网协议地址)是分配给连接到网络的设备的唯一标识符,允许它们通过互联网或局域网与其他设备通信。
如何使用 Go 获取你的 IP 地址呢?
公共 IP 地址 vs 私有 IP 地址
公共 IP 地址是分配给连接互联网的设备的,用于全球访问。它对互联网上的所有人可见,并用于外部识别设备。相反,私有(本地)IP 地址用于在私有网络内识别设备,仅在该私有网络内用于通信,外部不可见。
如何在 Go 中获取公共 IP 地址
在 Go 中,可以使用 net/http
包发起 HTTP 请求,从外部 API 获取公共 IP 地址。
package main import ( "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 地址
要获http://www.devze.com取本地 IP 编程地址,可以使用 net
包并检索网络接口,检查系统的本地 IP 地址。
package main import ( "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.Prhttp://www.devze.comintln("- IP 地址:", ipnet.IP.String()) } } } }
参考来源
- https://pkg.go.dev/net
- https://www.fortinet.com/resources/cyberglossary/what-is-ip-address
- https://en.wikipedia.org/wiki/IP_address
到此这篇关于如何使用 Go 获取你的 IP 地址的文章就介绍到这了,更多相关Go 获取 IP 地址内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览php下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!
精彩评论