web-dev-qa-db-ja.com

PHP php_network_getaddresses:getaddrinfo failed:そのようなホストは不明です

特定のターゲットドメインでDNSの問題が発生しています。 fopen()(ただし、他の関数と同じ問題)を使用して画像を取得していますが、このエラーが発生します:Warning: fopen(): php_network_getaddresses: getaddrinfo failed: No such Host is known

コマンドプロンプトからドメインをpingまたはnslookupできますが、何らかの理由でphpがこのエラーをスローします。 fopen('http://www.google.com', r);または他のドメインを試すと、すべてうまくいきます。しかし、上記のドメインはPHPでは解決しません。 DNSをフラッシュし、Apacheを再起動しましたが、まだ運がありません。

私は試しました:

  • Windows 7、Apache 2.2 PHP 5.3.6
  • Windowsサーバー2008r2、Apache 2.2 PHP 5.3.6

この単一ドメインが解決しない原因は何ですか?

27
Richard

IMOは、OSとPHPから名前を解決する別の方法です。

試してください:

echo gethostbyname("Host.name.tld");

そして

var_export (dns_get_record ( "Host.name.tld") );

または

$dns=array("8.8.8.8","8.8.4.4");
var_export (dns_get_record ( "Host.name.tld" ,  DNS_ALL , $dns ));

DNS /リゾルバーエラーが見つかりました。

18
Ivan Buttinoni

「localhost」はwww.google.comという名前を解決できません。つまり、マシンが有効なDNSサーバーに到達できない/到達できないことを意味します。

そのマシンのコンソールでgoogle.comにpingを実行して、これを確認してください。

1
anil

curlおよびfile_get_contentの代わりにfopenを使用してWebページを開く方がより柔軟です。

1
Mostafa Lavaei

私が見つけた奇妙なことは、環境変数SYSTEMROOTを設定する必要があることです。そうしないと、getaddrinfo()がWindows 10で失敗します。

0
bonger