Remplacement de l'adresse IP pour les requêtes HTTP dans Go
Dans Go, le package net/http facilite les requêtes HTTP en utilisant l'adresse IP par défaut du système. Cependant, il existe des cas où vous préférerez peut-être spécifier une adresse IP personnalisée pour de telles demandes. Cet article montre comment y parvenir en utilisant la configuration de Dialer.
Le défi vient de l'absence de documentation concernant l'adresse actuelle utilisée par la bibliothèque http. Pour spécifier l'adresse source d'une requête HTTP, il faut personnaliser le Dialer dans le Transport du Client.
Voici comment procéder :
// 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, }
En configurant le Dialer de cette manière, le Le paramètre LocalAddr spécifie l'adresse IP personnalisée qui sera utilisée comme adresse source pour toutes les requêtes HTTP effectuées par le client.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!