ホームページ > バックエンド開発 > Golang > Go で HTTP リクエストのカスタム送信元 IP アドレスを指定するにはどうすればよいですか?

Go で HTTP リクエストのカスタム送信元 IP アドレスを指定するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-17 17:56:14
オリジナル
835 人が閲覧しました

How Can I Specify a Custom Source IP Address for HTTP Requests in Go?

HTTP リクエストの IP 選択のカスタマイズ

Go の HTTP リクエストの標準ライブラリでは、送信リクエストに使用される送信元 IP アドレスが明示的に指定されません。ここで疑問が生じます: このようなリクエストに対して IP アドレスを手動で指定できますか?

解決策

はい、クライアントのトランスポートにカスタム ダイヤラを設定して、 HTTPリクエストに使用されるIPアドレス。方法は次のとおりです。

// Create a transport like http.DefaultTransport, but with a specified localAddr
transport := &http.Transport{
    Proxy: http.ProxyFromEnvironment,
    DialContext: (&net.Dialer{
        Timeout:   30 * time.Second,
        KeepAlive: 30 * time.Second,
        LocalAddr: localAddr, // Set the desired local address here
        DualStack: true,
    }).DialContext,
    MaxIdleConns:          100,
    IdleConnTimeout:       90 * time.Second,
    TLSHandshakeTimeout:   10 * time.Second,
    ExpectContinueTimeout: 1 * time.Second,
}

// Create an HTTP client with the custom transport
client := &http.Client{
    Transport: transport,
}
ログイン後にコピー

LocalAddr を Dialer に割り当てることで、そのクライアントを通じて行われる HTTP リクエストに使用される送信元 IP アドレスを指定できます。これにより、宛先サーバーに公開される IP アドレスを制御できるようになり、IP レピュテーションやルーティングの考慮事項を柔軟に管理できるようになります。

以上がGo で HTTP リクエストのカスタム送信元 IP アドレスを指定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート