Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menentukan Pelayan DNS Tersuai untuk Carian DNS dalam Go?

Bagaimana untuk Menentukan Pelayan DNS Tersuai untuk Carian DNS dalam Go?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-05 05:06:10764semak imbas

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

Alternatif Fungsi Carian di Golang untuk Spesifikasi Pelayan DNS Tersuai

Pustaka standard Go tidak menawarkan fungsi yang serupa dengan LookupTXT(nama, dnsServer) yang membolehkan pengguna menentukan pelayan DNS tersuai semasa melakukan carian DNS. Carian*. fungsi yang tersedia dalam pustaka standard hanya bergantung pada konfigurasi yang disediakan dalam /etc/resolv.conf.

Jika anda memerlukan fleksibiliti untuk menentukan pelayan DNS tersuai, pertimbangkan untuk menggunakan perpustakaan pihak ketiga seperti github.com/ miekg/dns. Pustaka ini menyediakan set fungsi yang ringan dan komprehensif untuk melaksanakan carian DNS, termasuk keupayaan untuk menentukan pelayan DNS tersuai. Contoh penggunaan github.com/miekg/dns untuk melakukan carian DNS dengan pelayan DNS tersuai disediakan di bawah:

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)
    }
}

Atas ialah kandungan terperinci Bagaimana untuk Menentukan Pelayan DNS Tersuai untuk Carian DNS dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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