Go での HTTP リクエストの IP アドレスのオーバーライド
Go では、net/http パッケージにより、デフォルトの IP アドレスを使用して HTTP リクエストが容易になります。システム。ただし、そのようなリクエストに対してカスタム IP アドレスを指定した方がよい場合もあります。この記事では、ダイヤラー構成を使用してこれを実現する方法を説明します。
この問題は、http ライブラリで使用される現在のアドレスに関するドキュメントが存在しないことに起因しています。 HTTP リクエストの送信元アドレスを指定するには、クライアントのトランスポートでダイヤラをカスタマイズする必要があります。
その方法は次のとおりです:
// Establish a transport similar to http.DefaultTransport, but with a custom local address transport := &http.Transport{ Proxy: http.ProxyFromEnvironment, DialContext: (&net.Dialer{ Timeout: 30 * time.Second, KeepAlive: 30 * time.Second, LocalAddr: localAddr, // Specify the desired local IP address DualStack: true, }).DialContext, MaxIdleConns: 100, IdleConnTimeout: 90 * time.Second, TLSHandshakeTimeout: 10 * time.Second, ExpectContinueTimeout: 1 * time.Second, } // Create an HTTP client using the custom transport client := &http.Client{ Transport: transport, }
この方法でダイヤラを構成すると、 LocalAddr パラメーターは、クライアントによって行われるすべての HTTP リクエストの送信元アドレスとして使用されるカスタム IP アドレスを指定します。
以上がGo で HTTP リクエストの送信元 IP アドレスをオーバーライドする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。