Maison >développement back-end >Golang >Comment puis-je spécifier une adresse IP source personnalisée pour les requêtes HTTP dans Go ?

Comment puis-je spécifier une adresse IP source personnalisée pour les requêtes HTTP dans Go ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-17 17:56:14836parcourir

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

Personnalisation de la sélection IP pour les requêtes HTTP

La bibliothèque standard pour les requêtes HTTP dans Go ne spécifie pas explicitement l'adresse IP source utilisée pour les requêtes sortantes . Cela soulève la question : pouvons-nous spécifier manuellement l'adresse IP pour de telles demandes ?

Solution

Oui, nous pouvons définir un numéroteur personnalisé dans le transport du client pour contrôler le Adresse IP utilisée pour les requêtes HTTP. Voici comment :

// 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,
}

En attribuant un LocalAddr au Dialer, vous pouvez spécifier l'adresse IP source qui sera utilisée pour les requêtes HTTP effectuées via ce client. Cela vous permet de contrôler l'adresse IP qui sera exposée au serveur de destination, offrant ainsi une flexibilité dans la gestion de la réputation IP ou des considérations de routage.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn