Rumah >pembangunan bahagian belakang >Golang >Bolehkah Perpustakaan Standard Go Menentukan Pelayan DNS Tersuai untuk Fungsi Carian?
Bolehkah Carian Go Fungsi Menentukan Pelayan?*
Pustaka dnsclient Go dengan lancar memuatkan konfigurasi daripada /etc/resolv .conf, menyediakan fungsi DNS yang penting. Walau bagaimanapun, senario tertentu menuntut penggunaan pelayan DNS tertentu. Adakah perpustakaan standard Go menawarkan mekanisme yang serupa dengan:
func LookupTXT(name string, dnsServer string) (txt []string, err error)
yang boleh mengatasi pelayan DNS lalai sambil mengekalkan integriti /etc/resolv.conf?
Penyelesaian
Walaupun klien DNS yang disediakan oleh Go tidak secara langsung menyokong penetapan pelayan semasa resolusi DNS, terdapat pendekatan alternatif untuk mencapai fungsi ini. Satu pilihan yang berdaya maju ialah memanfaatkan perpustakaan dns komprehensif yang dibangunkan oleh miekg:
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) } }
Setelah melaksanakan kod ini, anda akan memperoleh alamat IP yang diselesaikan untuk domain sasaran, menunjukkan penggunaan yang berkesan pelayan DNS tertentu tanpa menjejaskan konfigurasi lalai sistem.
Atas ialah kandungan terperinci Bolehkah Perpustakaan Standard Go Menentukan Pelayan DNS Tersuai untuk Fungsi Carian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!