特定のターゲットドメインで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を再起動しましたが、まだ運がありません。
私は試しました:
この単一ドメインが解決しない原因は何ですか?
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 /リゾルバーエラーが見つかりました。
「localhost」はwww.google.comという名前を解決できません。つまり、マシンが有効なDNSサーバーに到達できない/到達できないことを意味します。
そのマシンのコンソールでgoogle.comにpingを実行して、これを確認してください。
curl
およびfile_get_content
の代わりにfopen
を使用してWebページを開く方がより柔軟です。
私が見つけた奇妙なことは、環境変数SYSTEMROOT
を設定する必要があることです。そうしないと、getaddrinfo()
がWindows 10で失敗します。