Überschreiben der IP-Adresse für HTTP-Anfragen in Go
In Go ermöglicht das net/http-Paket HTTP-Anfragen unter Verwendung der Standard-IP-Adresse des System. Es gibt jedoch Fälle, in denen Sie für solche Anfragen möglicherweise lieber eine benutzerdefinierte IP-Adresse angeben möchten. Dieser Artikel zeigt, wie dies mithilfe der Dialer-Konfiguration erreicht wird.
Die Herausforderung ergibt sich aus dem Fehlen einer Dokumentation zur aktuellen Adresse, die von der http-Bibliothek verwendet wird. Um die Quelladresse für eine HTTP-Anfrage anzugeben, müssen wir den Dialer im Transport des Clients anpassen.
So wird es gemacht:
// 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, }
Durch die Konfiguration des Dialers auf diese Weise wird der Der Parameter LocalAddr gibt die benutzerdefinierte IP-Adresse an, die als Quelladresse für alle vom Client gestellten HTTP-Anfragen verwendet wird.
Das obige ist der detaillierte Inhalt vonWie überschreibe ich die Quell-IP-Adresse für HTTP-Anfragen in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!