Go で HTTP クライアントを IP アドレスにバインドする方法
この記事では、HTTP クライアントをバインドしようとするときに発生する一般的な問題について説明しますGo の特定のネットワーク インターフェイスまたは IP アドレスに送信します。この課題に対処するには、HTTP クライアントの Transport フィールドを変更する必要があります。
解決策には、Transport フィールドを HTTP トランスポートのインスタンスに設定することが含まれます。これにより、net.Dialer を指定できるようになります。次に、net.Dialer を使用すると、接続を行うローカル アドレスを定義できます。
<code class="go">import ( "net" "net/http" "time" ) func main() { // Resolve the local IP address you want to bind to localAddr, err := net.ResolveIPAddr("ip", "<your local address>") if err != nil { panic(err) } // Create a TCPAddr with the resolved IP address localTCPAddr := net.TCPAddr{ IP: localAddr.IP, } // Create an HTTP client with the modified Transport webclient := &http.Client{ Transport: &http.Transport{ DialContext: (&net.Dialer{ LocalAddr: &localTCPAddr, Timeout: 30 * time.Second, }).DialContext, }, } }</code>
net.Dialer の LocalAddr フィールドを設定することで、HTTP クライアントは指定されたローカル アドレスを使用するようになります。接続を確立するときの IP アドレス。これにより、クライアントを特定のネットワーク インターフェイスまたは IP アドレスにバインドし、送信 HTTP リクエストが目的のソースから送信されるようにすることができます。
以上がGo で HTTP クライアントを特定の IP アドレスにバインドするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。