我有一個 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()
}
- 1 回答
- 0 關注
- 149 瀏覽
添加回答
舉報
0/150
提交
取消