Go で「http.Client」を特定の IP アドレスにバインドするにはどうすればよいですか?

Linda Hamilton
リリース: 2024-10-28 01:48:29
オリジナル
901 人が閲覧しました

How do I bind an `http.Client` to a specific IP address in Go?

Go で http.Client を特定の IP アドレスにバインドする

クライアント マシンで複数のネットワーク インターフェイスを扱う場合、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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!