Heim >Backend-Entwicklung >Golang >Wie lege ich einen benutzerdefinierten DNS-Server für DNS-Suchen in Go fest?

Wie lege ich einen benutzerdefinierten DNS-Server für DNS-Suchen in Go fest?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-05 05:06:10764Durchsuche

How to Specify a Custom DNS Server for DNS Lookups in Go?

Lookup-Funktionsalternativen in Golang für benutzerdefinierte DNS-Serverspezifikation

Die Go-Standardbibliothek bietet derzeit keine ähnliche Funktion wie LookupTXT(name, dnsServer), mit dem Benutzer bei der Durchführung von DNS-Suchen einen benutzerdefinierten DNS-Server angeben können. Die Suche*. Die in der Standardbibliothek verfügbaren Funktionen basieren ausschließlich auf der in /etc/resolv.conf bereitgestellten Konfiguration.

Wenn Sie die Flexibilität benötigen, einen benutzerdefinierten DNS-Server anzugeben, sollten Sie die Verwendung von Bibliotheken von Drittanbietern wie github.com/ in Betracht ziehen. miekg/dns. Diese Bibliothek bietet einen einfachen und umfassenden Satz von Funktionen zum Durchführen von DNS-Suchen, einschließlich der Möglichkeit, einen benutzerdefinierten DNS-Server anzugeben. Nachfolgend finden Sie ein Beispiel für die Verwendung von github.com/miekg/dns zur Durchführung einer DNS-Suche mit einem benutzerdefinierten DNS-Server:

import (
    "log"

    "github.com/miekg/dns"
)

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

    c := dns.Client{}
    m := dns.Msg{}
    m.SetQuestion(target+".", dns.TypeA)
    r, t, err := c.Exchange(&m, server+":53")
    if err != nil {
        log.Fatal(err)
    }
    log.Printf("Took %v", t)
    if len(r.Answer) == 0 {
        log.Fatal("No results")
    }
    for _, ans := range r.Answer {
        Arecord := ans.(*dns.A)
        log.Printf("%s", Arecord.A)
    }
}

Das obige ist der detaillierte Inhalt vonWie lege ich einen benutzerdefinierten DNS-Server für DNS-Suchen in Go fest?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn