当前位置: 代码网 > it编程>前端脚本>Golang > 如何使用 Go 获取你的 IP 地址(推荐)

如何使用 Go 获取你的 IP 地址(推荐)

2024年11月04日 Golang 我要评论
一个ip 地址(互联网协议地址)是分配给连接到网络的设备的唯一标识符,允许它们通过互联网或局域网与其他设备通信。如何使用 go 获取你的 ip 地址呢?公共 ip 地址 vs 私有 ip 地址公共 i

一个 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 地址

要获取本地 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.println("- ip 地址:", ipnet.ip.string())
            }
        }
    }
}

参考来源

到此这篇关于如何使用 go 获取你的 ip 地址的文章就介绍到这了,更多相关go 获取 ip 地址内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com