Heim > Backend-Entwicklung > Golang > Wie kann ich in Go eine benutzerdefinierte Quell-IP-Adresse für HTTP-Anfragen angeben?

Wie kann ich in Go eine benutzerdefinierte Quell-IP-Adresse für HTTP-Anfragen angeben?

Susan Sarandon
Freigeben: 2024-12-17 17:56:14
Original
835 Leute haben es durchsucht

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

IP-Auswahl für HTTP-Anfragen anpassen

Die Standardbibliothek für HTTP-Anfragen in Go gibt die für ausgehende Anfragen verwendete Quell-IP-Adresse nicht explizit an . Dies wirft die Frage auf: Können wir die IP-Adresse für solche Anfragen manuell angeben?

Lösung

Ja, wir können im Transport des Clients einen benutzerdefinierten Dialer festlegen, um das zu steuern IP-Adresse, die für HTTP-Anfragen verwendet wird. So geht's:

// 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,
}
Nach dem Login kopieren

Durch Zuweisen einer LocalAddr zum Dialer können Sie die Quell-IP-Adresse angeben, die für HTTP-Anfragen verwendet wird, die über diesen Client erfolgen. Dadurch können Sie die IP-Adresse steuern, die dem Zielserver angezeigt wird, und bieten so Flexibilität bei der Verwaltung der IP-Reputation oder Routing-Überlegungen.

Das obige ist der detaillierte Inhalt vonWie kann ich in Go eine benutzerdefinierte Quell-IP-Adresse für HTTP-Anfragen angeben?. 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