Rumah > pembangunan bahagian belakang > Golang > Bolehkah Perpustakaan Standard Go Menentukan Pelayan DNS Tersuai untuk Fungsi Carian?

Bolehkah Perpustakaan Standard Go Menentukan Pelayan DNS Tersuai untuk Fungsi Carian?

Susan Sarandon
Lepaskan: 2024-11-29 21:58:11
asal
290 orang telah melayarinya

Can Go's Standard Library Specify a Custom DNS Server for Lookup Functions?

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)
Salin selepas log masuk

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)
    }
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan