/etc/resolv.conf を変更しない Golang の LookupTXT 関数
標準の Golang ライブラリは、LookupTXT に相当する直接関数を提供していません。カスタム DNS サーバーを指定できます。この理由は、DNS クライアントが DNS サーバー情報に関して /etc/resolv.conf の構成に依存しているためです。
ただし、変更を加えないという要件を守りながら必要なことを実現するには、いくつかのオプションがあります。 /etc/resolv.conf.
カスタム DNS の使用リゾルバー:
1 つの方法は、特定の 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 中国語 Web サイトの他の関連記事を参照してください。