ホームページ >バックエンド開発 >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?

カスタム DNS サーバー仕様のための Golang の Lookup 関数の代替手段

Go 標準ライブラリは現在、LookupTXT(name, dnsServer) を使用すると、ユーザーは DNS ルックアップを実行するときにカスタム DNS サーバーを指定できます。ルックアップ*。標準ライブラリで利用可能な関数は、/etc/resolv.conf で提供される構成にのみ依存します。

カスタム DNS サーバーを柔軟に指定する必要がある場合は、github.com/ などのサードパーティ ライブラリの利用を検討してください。 miekg/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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。