クライアント マシンで複数のネットワーク インターフェイスを扱う場合、http.Client をバインドすることが不可欠になります特定の NIC または SRC IP アドレスに送信して、正確なネットワーク トラフィック ルーティングを確保します。次のガイドでは、Go でこれを実現するために必要な手順を説明します。
まず、http.Client.Transport フィールドを net.Transport のインスタンスに設定することが重要です。これにより、使用する net.Dialer を指定できます。その後、net.Dialer を使用して、接続を開始するローカル アドレスを定義できるようになります。
次のコード スニペットを検討してください。
<code class="go">localAddr, err := net.ResolveIPAddr("ip", "<my local address>") if err != nil { panic(err) } localTCPAddr := net.TCPAddr{ IP: localAddr.IP, } webclient := &http.Client{ Transport: &http.Transport{ Proxy: http.ProxyFromEnvironment, DialContext: (&net.Dialer{ LocalAddr: &localTCPAddr, Timeout: 30 * time.Second, KeepAlive: 30 * time.Second, DualStack: true, }).DialContext, MaxIdleConns: 100, IdleConnTimeout: 90 * time.Second, TLSHandshakeTimeout: 10 * time.Second, ExpectContinueTimeout: 1 * time.Second, }, }</code>
これらの手順に従うことで、http を効果的にバインドできます。特定の IP アドレスにクライアントを接続し、クライアント マシンから発信されるネットワーク トラフィックを確実に制御します。
以上がGo で「http.Client」を特定の IP アドレスにバインドするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。