Maison > développement back-end > Golang > Comment effectuer un LookupTXT dans Golang sans changer /etc/resolv.conf ?

Comment effectuer un LookupTXT dans Golang sans changer /etc/resolv.conf ?

Patricia Arquette
Libérer: 2024-12-03 12:58:11
original
364 Les gens l'ont consulté

How to Perform a LookupTXT in Golang Without Changing /etc/resolv.conf?

Fonction LookupTXT dans Golang sans modifier /etc/resolv.conf

La bibliothèque Golang standard ne fournit pas de fonction directe équivalente à LookupTXT qui permet de spécifier un serveur DNS personnalisé. La raison en est que le client DNS s'appuie sur la configuration de /etc/resolv.conf pour les informations sur le serveur DNS.

Cependant, il existe plusieurs options pour obtenir ce dont vous avez besoin tout en respectant l'exigence de ne pas modifier /etc/resolv.conf.

Utilisation d'un résolveur DNS personnalisé :

Une approche consiste à utilisez une bibliothèque de résolution DNS personnalisée qui prend en charge la spécification d'un serveur DNS spécifique. Par exemple, la bibliothèque github.com/miekg/dns offre la possibilité de définir une adresse IP de serveur personnalisée dans l'objet dns.Client. Le code suivant montre comment utiliser cette bibliothèque :

import (
    "log"
    "net"

    "github.com/miekg/dns"
)

func main() {
    target := "microsoft.com"
    server := "8.8.8.8"

    // Create a new DNS client with a custom server.
    c := dns.Client{Net: "udp", Server: server}

    // Build a request message.
    m := dns.Msg{}
    m.SetQuestion(target+".", dns.TypeTXT)

    // Exchange the request and receive the response.
    r, _, err := c.Exchange(&m, server+":53")
    if err != nil {
        log.Fatal(err)
    }

    // Process the response.
    if len(r.Answer) == 0 {
        log.Fatal("No results")
    }
    for _, ans := range r.Answer {
        TXTrecord := ans.(*dns.TXT)
        for _, txt := range TXTrecord.Txt {
            log.Println(txt)
        }
    }
}
Copier après la connexion

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