首頁 >後端開發 >Golang >如何在 Go 中指定自訂 DNS 伺服器進行 DNS 查找?

如何在 Go 中指定自訂 DNS 伺服器進行 DNS 查找?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-05 05:06:10764瀏覽

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

Golang 中用於自訂DNS 伺服器規範的查找函數替代

Go 標準庫目前不提供類似於LookupTXT(name, dnsServer ),允許使用者在執行DNS 查找時指定自訂DNS 伺服器。尋找*。標準庫中可用的功能僅依賴 /etc/resolv.conf 中提供的配置。

如果您需要靈活地指定自訂 DNS 伺服器,請考慮使用第三方函式庫,例如 github.com/米克/DNS。該程式庫提供了一組輕量級且全面的函數來執行 DNS 查找,包括指定自訂 DNS 伺服器的功能。下面提供了使用 github.com/miekg/dns 透過自訂 DNS 伺服器執行 DNS 查找的範例:

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

以上是如何在 Go 中指定自訂 DNS 伺服器進行 DNS 查找?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn