我有一個 IP 地址,想檢查是否可以從它向 Internet 發(fā)送請求。我想檢查 IPv4 地址和 IPv6 地址。該檢查應(yīng)適用于任何 IP 地址(本地、公共、docker's、lo 等)。換個角度,想看看能不能綁定地址。例如,我在我的機器上設(shè)置了無法綁定的 IP(通過測試curl --interface),并希望從我的可用地址中過濾這些 IP。用法:用戶輸入一個 IP 地址來發(fā)送(http get)請求,我想檢查 IP 是否有效/可用。編輯嘗試綁定并查看是否可以:我已經(jīng)嘗試過: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")}它將所有可用地址(甚至環(huán)回)顯示為可用(甚至檢查響應(yīng)主體;所有都是有效的)。其中許多不能通過curl --interface.
1 回答

忽然笑
TA貢獻1806條經(jīng)驗 獲得超5個贊
嘗試綁定它,看看是否有錯誤:
l,err := net.Listen("tcp", address)
if err != nil {
// address is not bindable
} else {
l.Close()
}
- 1 回答
- 0 關(guān)注
- 148 瀏覽
添加回答
舉報
0/150
提交
取消