Golang 中的LookupTXT 函數,無需修改/etc/resolv.conf
標準Golang 庫沒有提供與LookupTXT 等效的直接函數,允許指定自訂DNS 伺服器。原因是 DNS 用戶端依賴 /etc/resolv.conf 中的配置來取得 DNS 伺服器資訊。
但是,有幾個選項可以實現您所需要的,同時遵守不修改的要求/etc/resolv.conf.
使用自訂DNS 解析器:
一種方法就是使用一個自訂的DNS解析器函式庫,支援指定特定的DNS伺服器。例如,github.com/miekg/dns 庫提供了在 dns.Client 物件中設定自訂伺服器 IP 的靈活性。以下程式碼示範如何使用該函式庫:
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) } } }
以上是如何在不更改 /etc/resolv.conf 的情況下在 Golang 中執行 LookupTXT?的詳細內容。更多資訊請關注PHP中文網其他相關文章!