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 サイトの他の関連記事を参照してください。