警告: Php_network_getaddresses: Getaddrinfo に失敗しました: そのようなホストは不明です
PHP でデータベース、サーバー、または Web サービスを操作しているときに、次の警告が表示されることがあります。
Warning : php_network_getaddresses: getaddrinfo failed: No such host is known
この警告は、システムが有効な DNS サーバーを見つけられない場合に発生します。 この記事では、このような警告を取り除く方法を紹介します。
dns_get_record()
PHP 関数を使用してホストが存在することを確認する
PHP の fopen()
、fgets()
、fclose()
などのファイル関数を使用して、Web サイトのコンテンツを操作して読み取ることができます。 URL を開くときに、そのようなホストは認識されていません
という警告メッセージが表示される場合があります。
完全な警告は記事の冒頭に示されています。 警告の考えられる理由の 1つは、ホストが存在しない可能性があることです。
したがって、ホストのステータスを確認するのは良い方法です。
dns_get_record()
PHP 関数を使用して、特定のホストの DNS リソース レコードを確認できます。 関数にホスト名を設定して、その DNS 情報を取得できます。
たとえば、変数 $result
を作成し、それに関数 dns_get_record()
を割り当てます。 ホスト名 stackoverflow.com
をパラメーターとして関数に書き込みます。
次に、print_r()
を使用して、$result
変数の情報を表示します。
コード例:
$result = dns_get_record("stackoverflow.com");
echo '<pre>', print_r($result), '</pre>';
出力:
Array
(
[0] => Array
(
[host] => stackoverflow.com
[class] => IN
[ttl] => 186
[type] => A
[ip] => 151.101.129.69
)
[1] => Array
(
[host] => stackoverflow.com
[class] => IN
[ttl] => 186
[type] => A
[ip] => 151.101.65.69
)
[2] => Array
(
[host] => stackoverflow.com
[class] => IN
[ttl] => 186
[type] => A
[ip] => 151.101.1.69
)
[3] => Array
(
[host] => stackoverflow.com
[class] => IN
[ttl] => 186
[type] => A
[ip] => 151.101.193.69
)
)
1
出力には、stackoverflow.com
の DNS リソース レコードが表示されます。 ホスト名が存在することを確認します。
ホスト名が存在しない場合、出力は次のようになります。
出力:
Array
(
)
1
ping
コマンドで名前解決を確認することもできます。 ターミナルで次のように入力します。
ping stackoverflow.com
出力:
ホストが存在しない場合、出力は次のようになります。
ping: pokharasahar.com: Name or service not known
ここでは、存在しないホスト名 pokharasahar.com
を使用しています。
したがって、dns_get_record()
関数を使用して名前解決を実行し、ドメインが存在することを確認できます。 このようにして、PHP の php_network_getaddresses: getaddrinfo failed
警告を取り除くことができます。
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn