ホームページ > バックエンド開発 > Golang > Go で HTTP リクエストの送信元 IP アドレスをオーバーライドする方法は?

Go で HTTP リクエストの送信元 IP アドレスをオーバーライドする方法は?

DDD
リリース: 2024-12-30 08:48:12
オリジナル
833 人が閲覧しました

How to Override the Source IP Address for HTTP Requests in Go?

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

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