为了账号安全,请及时绑定邮箱和手机立即绑定

如何检查我是否可以绑定到 IP 地址?

如何检查我是否可以绑定到 IP 地址?

Go
慕斯709654 2022-07-04 16:03:56
我有一个 IP 地址,想检查是否可以从它向 Internet 发送请求。我想检查 IPv4 地址和 IPv6 地址。该检查应适用于任何 IP 地址(本地、公共、docker's、lo 等)。换个角度,想看看能不能绑定地址。例如,我在我的机器上设置了无法绑定的 IP(通过测试curl --interface),并希望从我的可用地址中过滤这些 IP。用法:用户输入一个 IP 地址来发送(http get)请求,我想检查 IP 是否有效/可用。编辑尝试绑定并查看是否可以:我已经尝试过:tcpAddr, _ := net.ResolveTCPAddr("tcp", ipString)client := &http.Client{    Transport: &http.Transport{        DialContext: (&net.Dialer{            Timeout:   10 * time.Second,            LocalAddr: tcpAddr,        }).DialContext,    },}_, err = client.Get("http://www.google.com/")if err != nil {    fmt.Println("Unusable")} else {    fmt.Println("Usable")}它将所有可用地址(甚至环回)显示为可用(甚至检查响应主体;所有都是有效的)。其中许多不能通过curl --interface.
查看完整描述

1 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

尝试绑定它,看看是否有错误:


l,err := net.Listen("tcp", address)

if err != nil {

    // address is not bindable

} else {

    l.Close()

}


查看完整回答
反对 回复 2022-07-04
  • 1 回答
  • 0 关注
  • 123 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信