我有一个 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.
忽然笑
相关分类