LookupTXT-Funktion in Golang ohne Änderung von /etc/resolv.conf
Die Standard-Golang-Bibliothek bietet keine direkte Funktion, die LookupTXT entspricht ermöglicht die Angabe eines benutzerdefinierten DNS-Servers. Der Grund dafür ist, dass der DNS-Client für DNS-Serverinformationen auf die Konfiguration aus /etc/resolv.conf angewiesen ist.
Es gibt jedoch mehrere Optionen, um das zu erreichen, was Sie benötigen, und gleichzeitig die Anforderung einzuhalten, keine Änderungen vorzunehmen /etc/resolv.conf.
Verwendung eines benutzerdefinierten DNS-Resolvers:
Ein Ansatz besteht darin, Verwenden Sie eine benutzerdefinierte DNS-Resolver-Bibliothek, die die Angabe eines bestimmten DNS-Servers unterstützt. Beispielsweise bietet die Bibliothek github.com/miekg/dns die Flexibilität, eine benutzerdefinierte Server-IP im dns.Client-Objekt festzulegen. Der folgende Code demonstriert die Verwendung dieser Bibliothek:
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) } } }
Das obige ist der detaillierte Inhalt vonWie führe ich einen LookupTXT in Golang durch, ohne /etc/resolv.conf zu ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!