Comment lier un client HTTP à une adresse IP dans Go
Cet article explore un problème courant rencontré lors de la tentative de liaison d'un client HTTP à une interface réseau ou une adresse IP spécifique dans Go. Pour relever ce défi, vous devez modifier le champ Transport du client HTTP.
La solution consiste à définir le champ Transport sur une instance du transport HTTP, ce qui vous permet ensuite de spécifier un net.Dialer. Le net.Dialer, à son tour, vous permet de définir l'adresse locale à partir de laquelle les connexions doivent être établies.
<code class="go">import ( "net" "net/http" "time" ) func main() { // Resolve the local IP address you want to bind to localAddr, err := net.ResolveIPAddr("ip", "<your local address>") if err != nil { panic(err) } // Create a TCPAddr with the resolved IP address localTCPAddr := net.TCPAddr{ IP: localAddr.IP, } // Create an HTTP client with the modified Transport webclient := &http.Client{ Transport: &http.Transport{ DialContext: (&net.Dialer{ LocalAddr: &localTCPAddr, Timeout: 30 * time.Second, }).DialContext, }, } }</code>
En définissant le champ LocalAddr du net.Dialer, le client HTTP utilisera désormais l'adresse locale spécifiée. Adresse IP lors de l'établissement des connexions. Cela vous permet de lier le client à une interface réseau ou à une adresse IP spécifique, garantissant que les requêtes HTTP sortantes proviennent de la source souhaitée.
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!