Maison > développement back-end > Golang > Comment appliquer l'utilisation d'IPv4 ou d'IPv6 dans le client HTTP Go ?

Comment appliquer l'utilisation d'IPv4 ou d'IPv6 dans le client HTTP Go ?

Linda Hamilton
Libérer: 2024-11-02 14:16:02
original
544 Les gens l'ont consulté

How to Enforce IPv4 or IPv6 Usage in Go HTTP Client?

Application de l'utilisation d'IPv4/IPv6 dans le client HTTP Go

Dans Go, le http.Client fournit un transport pour les requêtes HTTP qui gère les connexions réseau . Pour forcer le client à utiliser exclusivement IPv4 ou IPv6, exploitez la fonction DialContext dans une implémentation de transport personnalisée.

Implémentation de transport modifié

L'extrait de transport modifié vise à détecter les domaines IPv6 uniquement en renvoyant une erreur. lorsqu'une tentative est effectuée pour établir une connexion IPv4.

<code class="go">type MyTransport struct {
    http.Transport
    Dialer net.Dialer
}

func (t *MyTransport) DialContext(ctx context.Context, network, address string) (net.Conn, error) {
    if network == "ipv4" {
        return nil, errors.New("IPv4 not permitted")
    }
    return t.Dialer.DialContext(ctx, network, address)
}</code>
Copier après la connexion

Configuration du client HTTP

Pour utiliser le transport personnalisé, instanciez un objet http.Client :

<code class="go">myClient := http.Client{
    Transport: &MyTransport{
        Dialer: net.Dialer{
            DualStack: false, // Disable IPv4/IPv6 dual-stack
        },
    },
}</code>
Copier après la connexion

Application des connexions IPv6 uniquement

En définissant DualStack sur false, le numéroteur interdit les connexions IPv4. Cette modification oblige effectivement le client à utiliser des connexions IPv6 uniquement.

Fermeture de la connexion

Les connexions établies à l'aide du transport modifié se comportent comme des connexions normales. Leur fermeture est gérée par le client HTTP sous-jacent, il n'est donc pas nécessaire de le gérer manuellement.

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