ネットワーク プログラミングでは、ドメイン名の IP アドレスをクエリする必要がある場合があります。 Golang 標準ライブラリは net パッケージを提供します。このパッケージでは、ResolveIPAddr 関数を使用して、指定されたドメイン名の IP アドレスをクエリできます。以下では、Golang を使用してドメイン名の IP をクエリする方法を詳しく紹介します。
まず、一連のネットワーク操作機能と種類を提供するネット パッケージをインポートする必要があります。このパッケージでは、ResolveIPAddr 関数を使用してドメイン名の IP アドレスをクエリできます。
import "net"
ドメイン名 IP アドレスをクエリする関数は ResolveIPAddr で、そのプロトタイプは次のとおりです:
func ResolveIPAddr(network, address string) (*IPAddr, error)
ネットワーク パラメーターは次のとおりです。 empty は、クエリ対象のネットワーク タイプを指定します。IPv4 アドレスと IPv6 アドレスに対応する「ip4」または「ip6」を指定できます。 address パラメータは、クエリ対象のドメイン名です。
コードは次のとおりです:
ip, err := net.ResolveIPAddr("ip4", "www.google.com") if err != nil { fmt.Println("Resolve error:", err) return } fmt.Println(ip.String())
ここで照会されるのは、www.google.com ドメイン名の IPv4 アドレスです。上記のコードは、最初に ResolveIPAddr 関数を呼び出してドメイン名の IP アドレスをクエリし、結果を ip 変数に保存します。エラーが発生した場合はエラー処理が必要です。最後に、ip.String() 関数を使用して、クエリ結果を文字列形式で出力します。
IPv6 アドレスをクエリする必要がある場合は、クエリ関数の最初のパラメータを「ip6」に変更し、ドメイン名を変更できます。 IPv6 アドレスの形式に変換します。
たとえば、次のように ipv6.google.com の IPv6 アドレス コードをクエリします。
ip, err := net.ResolveIPAddr("ip6", "::ffff:172.217.26.238") if err != nil { fmt.Println("Resolve error:", err) return } fmt.Println(ip.String())
ここでクエリを実行する場合、IPv4 アドレス 172.217.26.238 を IPv6 アドレス "::ffff:" に変換します。 172.217.26.238" を 2 番目のパラメータとして渡します。
net パッケージには、ネットワーク プログラミングに必要な多くの関数と型が用意されており、ResolveIPAddr 関数を使用してドメイン名の IP アドレスをクエリできます。使用する場合は、ネットワークの種類とクエリ ドメイン名の正しい形式に注意する必要があります。
以上がgolangクエリドメイン名ipの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。