Heim > Backend-Entwicklung > Golang > Wie lege ich die Quell-IP-Adresse für HTTP-Anfragen in Go fest?

Wie lege ich die Quell-IP-Adresse für HTTP-Anfragen in Go fest?

Mary-Kate Olsen
Freigeben: 2024-12-23 09:54:30
Original
224 Leute haben es durchsucht

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

HTTP-Anfragen anpassen: Quell-IP-Adresse festlegen

Frage:

Wie kann ich die verwendete Quell-IP-Adresse angeben? für eine HTTP-Anfrage in Los?

Antwort:

Obwohl die Standardbibliothek nicht direkt eine Möglichkeit bietet, die Quell-IP-Adresse für HTTP-Anfragen festzulegen, können Sie dies erreichen, indem Sie die des Clients anpassen Transport mit einem benutzerdefinierten Dialer.

Verwendung eines benutzerdefinierten Dialers

Um die Quell-IP-Adresse anzupassen, können Sie eine benutzerdefinierte erstellen Dialer und weisen Sie ihn dem Transport des Kunden zu. Hier ist ein Beispiel:

import (
    "net"
    "time"

    "golang.org/x/net/http/httpproxy"
)

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

// Create the client with the customized transport
client := &http.Client{
    Transport: transport,
}
Nach dem Login kopieren

Durch die Einstellung von LocalAddr im Dialer können Sie die Quell-IP-Adresse angeben, die für die HTTP-Anfrage verwendet werden soll.

Beispielverwendung

Einmal Wenn Sie den benutzerdefinierten Client erstellt haben, können Sie ihn verwenden, um HTTP-Anfragen zu stellen:

resp, err := client.Get("http://example.com/")
if err != nil {
    // handle error
}
defer resp.Body.Close()
// ...
Nach dem Login kopieren

Diese Verwendung ähnelt der Erstellung von Anfragen mit dem Standard http.Get, aber es ermöglicht Ihnen, die Quell-IP-Adresse für die Anfrage zu steuern. Denken Sie daran, localAddr durch die gewünschte IP-Adresse zu ersetzen.

Das obige ist der detaillierte Inhalt vonWie lege ich die Quell-IP-Adresse für HTTP-Anfragen in Go fest?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage