Maison > développement back-end > Golang > Comment spécifier l'adresse IP source pour les requêtes HTTP dans Go ?

Comment spécifier l'adresse IP source pour les requêtes HTTP dans Go ?

Mary-Kate Olsen
Libérer: 2024-12-23 09:54:30
original
224 Les gens l'ont consulté

How to Specify the Source IP Address for HTTP Requests in Go?

Personnalisation des requêtes HTTP : définition de l'adresse IP source

Question :

Comment puis-je spécifier l'adresse IP source utilisée pour une requête HTTP dans Allez-y ?

Réponse :

Bien que la bibliothèque standard ne fournisse pas directement un moyen de définir l'adresse IP source pour les requêtes HTTP, vous pouvez y parvenir en personnalisant l'adresse IP du client. transport à l'aide d'un numéroteur personnalisé.

Utilisation d'un numéroteur personnalisé

Pour personnaliser l'adresse IP source, vous pouvez créer un numéroteur personnalisé composeur et l'attribuer au transport du client. Voici un exemple :

import (
    "net"
    "time"

    "golang.org/x/net/http/httpproxy"
)

// Create a custom transport with a specified local address
transport := &http.Transport{
    Proxy: http.ProxyFromEnvironment,
    DialContext: (&net.Dialer{
        Timeout:   30 * time.Second,
        KeepAlive: 30 * time.Second,
        LocalAddr: localAddr, // Set the desired local IP address here
        DualStack: true,
    }).DialContext,
    MaxIdleConns:          100,
    IdleConnTimeout:       90 * time.Second,
    TLSHandshakeTimeout:   10 * time.Second,
    ExpectContinueTimeout: 1 * time.Second,
}

// Create the client with the customized transport
client := &http.Client{
    Transport: transport,
}
Copier après la connexion

En définissant LocalAddr dans le numéroteur, vous pouvez spécifier l'adresse IP source à utiliser pour la requête HTTP.

Exemple d'utilisation

Une fois vous avez créé le client personnalisé, vous pouvez l'utiliser pour faire des requêtes HTTP :

resp, err := client.Get("http://example.com/")
if err != nil {
    // handle error
}
defer resp.Body.Close()
// ...
Copier après la connexion

Cette utilisation est similaire à la réalisation de requêtes en utilisant le standard http.Get, mais il vous permet de contrôler l'adresse IP source de la requête. Pensez à remplacer localAddr par l'adresse IP 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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal