警告: Php_network_getaddresses: Getaddrinfo に失敗しました: そのようなホストは不明です

Subodh Poudel 2023年6月20日
警告: 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

ホストが存在しない場合、出力は次のようになります。

ping: pokharasahar.com: Name or service not known

ここでは、存在しないホスト名 pokharasahar.com を使用しています。

したがって、dns_get_record() 関数を使用して名前解決を実行し、ドメインが存在することを確認できます。 このようにして、PHP の php_network_getaddresses: getaddrinfo failed 警告を取り除くことができます。

著者: Subodh Poudel
Subodh Poudel avatar Subodh Poudel avatar

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

関連記事 - PHP Warning