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
379 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!

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