ホームページ  >  記事  >  バックエンド開発  >  golangクエリドメイン名ip

golangクエリドメイン名ip

PHPz
PHPzオリジナル
2023-05-13 10:44:37852ブラウズ

ネットワーク プログラミングでは、ドメイン名の IP アドレスをクエリする必要がある場合があります。 Golang 標準ライブラリは net パッケージを提供します。このパッケージでは、ResolveIPAddr 関数を使用して、指定されたドメイン名の IP アドレスをクエリできます。以下では、Golang を使用してドメイン名の IP をクエリする方法を詳しく紹介します。

  1. ネット パッケージのインポート

まず、一連のネットワーク操作機能と種類を提供するネット パッケージをインポートする必要があります。このパッケージでは、ResolveIPAddr 関数を使用してドメイン名の IP アドレスをクエリできます。

import "net"
  1. ドメイン名 IP のクエリ

ドメイン名 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() 関数を使用して、クエリ結果を文字列形式で出力します。

  1. クエリ ドメイン名 IPv6

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 番目のパラメータとして渡します。

  1. 概要

net パッケージには、ネットワーク プログラミングに必要な多くの関数と型が用意されており、ResolveIPAddr 関数を使用してドメイン名の IP アドレスをクエリできます。使用する場合は、ネットワークの種類とクエリ ドメイン名の正しい形式に注意する必要があります。

以上がgolangクエリドメイン名ipの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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