Maison > Article > développement back-end > Comment limiter l'adresse IP du client HTTP de Go lorsque plusieurs cartes réseau sont présentes ?
Comment contraindre l'adresse IP du client HTTP
Le http.Client de Go permet des requêtes HTTP efficaces, mais comment restreindre son adresse IP si votre Le système héberge plusieurs cartes réseau ?
Personnalisation de la liaison IP
Pour lier le http.Client à une IP spécifique, modifiez son champ Transport avec une instance de net.Transport. Cela vous permet de désigner net.Dialer pour contrôler l'adresse locale pour les connexions.
Exemple de code
L'extrait de code ci-dessous montre comment lier le client à un utilisateur spécifié. adresse IP locale :
<code class="go">import ( "net" "net/http" "net/http/httputil" "time" ) func main() { // Resolve the local IP address localAddr, err := net.ResolveIPAddr("ip", "<my local address>") if err != nil { panic(err) } // Create a TCPAddr instance to specify the local address without specifying a port localTCPAddr := net.TCPAddr{ IP: localAddr.IP, } // Create an HTTP client with a custom transport that specifies the local address webclient := &http.Client{ Transport: &http.Transport{ Proxy: http.ProxyFromEnvironment, DialContext: (&net.Dialer{ LocalAddr: &localTCPAddr, Timeout: 30 * time.Second, KeepAlive: 30 * time.Second, DualStack: true, }).DialContext, MaxIdleConns: 100, IdleConnTimeout: 90 * time.Second, TLSHandshakeTimeout: 10 * time.Second, ExpectContinueTimeout: 1 * time.Second, }, } // Execute an HTTP request using the customized client req, _ := http.NewRequest("GET", "http://www.google.com", nil) resp, _ := webclient.Do(req) defer resp.Body.Close() // Optionally, use httputil to get the status code and response body code, _ := httputil.DumpResponse(resp, true) fmt.Println(code) }</code>
En utilisant cette approche, vous pouvez spécifier l'adresse IP utilisée par les connexions du client HTTP. Cela vous permet de contrôler l'adresse IP sortante pour une flexibilité réseau.
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!