Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Melakukan Carian DNS dalam Go dengan Pelayan DNS Tersuai?
Banyak operasi berkaitan rangkaian bergantung pada carian DNS untuk menyelesaikan nama hos kepada alamat IP dan maklumat lain. Golang menyediakan satu set fungsi mudah dalam pakej bersih untuk melaksanakan carian DNS, termasuk LookupAddr dan LookupTXT, yang mengembalikan alamat IP atau rekod teks yang sepadan untuk nama hos yang diberikan.
Satu had bagi fungsi ini ialah ia biasanya bergantung pada penyelesai sistem yang dikonfigurasikan dalam /etc/resolv.conf. Walaupun ini mencukupi dalam kebanyakan kes, mungkin terdapat keadaan di mana anda perlu menentukan pelayan DNS tertentu untuk melakukan carian.
Malangnya, pustaka Go standard pada masa ini tidak menawarkan fungsi seperti LookupAddrWithServer atau LookupTXTWithServer yang membolehkan anda menentukan pelayan DNS tersuai. Walau bagaimanapun, terdapat beberapa perpustakaan pihak ketiga yang menyediakan fungsi ini, termasuk github.com/miekg/dns yang popular.
Contoh diubah suai berikut daripada jawapan yang diberikan oleh @holys menunjukkan cara anda boleh menggunakan miekg/ perpustakaan dns untuk melakukan carian DNS dengan pelayan tertentu:
package main import ( "fmt" "log" "github.com/miekg/dns" ) func main() { target := "example.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) } fmt.Printf("Took %v", t) if len(r.Answer) == 0 { log.Fatal("No results") } for _, ans := range r.Answer { arecord := ans.(*dns.A) fmt.Printf("%s", arecord.A) } }
Contoh ini menggunakan github.com/miekg/dns perpustakaan untuk melakukan carian rekod A contohnya.com menggunakan pelayan DNS yang ditentukan di 8.8.8.8. Dengan memanfaatkan perpustakaan pihak ketiga seperti miekg/dns, anda boleh melanjutkan fungsi yang disediakan oleh perpustakaan standard Go untuk memenuhi keperluan khusus anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melakukan Carian DNS dalam Go dengan Pelayan DNS Tersuai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!