Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Melakukan LookupTXT di Golang Tanpa Menukar /etc/resolv.conf?

Bagaimana untuk Melakukan LookupTXT di Golang Tanpa Menukar /etc/resolv.conf?

Patricia Arquette
Patricia Arquetteasal
2024-12-03 12:58:11242semak imbas

How to Perform a LookupTXT in Golang Without Changing /etc/resolv.conf?

Fungsi LookupTXT di Golang tanpa Mengubah suai /etc/resolv.conf

Pustaka Golang standard tidak menyediakan fungsi langsung yang setara dengan LookupTXT yang membenarkan menentukan pelayan DNS tersuai. Sebabnya ialah klien DNS bergantung pada konfigurasi daripada /etc/resolv.conf untuk maklumat pelayan DNS.

Walau bagaimanapun, terdapat beberapa pilihan untuk mencapai perkara yang anda perlukan sambil mematuhi keperluan untuk tidak mengubah suai /etc/resolv.conf.

Menggunakan DNS Tersuai Penyelesai:

Satu pendekatan ialah menggunakan perpustakaan penyelesai DNS tersuai yang menyokong penetapan pelayan DNS tertentu. Contohnya, pustaka github.com/miekg/dns menyediakan fleksibiliti untuk menetapkan IP pelayan tersuai dalam objek dns.Client. Kod berikut menunjukkan cara menggunakan pustaka ini:

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

Atas ialah kandungan terperinci Bagaimana untuk Melakukan LookupTXT di Golang Tanpa Menukar /etc/resolv.conf?. 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