PHP php_network_getaddresses: getaddrinfo не удалось: такой хост не известен

У меня проблемы с 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

Что может привести к тому, что этот единственный домен не будет разрешен?

ИМО – это другой способ разрешить имя из ОС и 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 / resolver.

Ваш «локальный хост» не может разрешить имя http://www.google.com, что означает, что ваш компьютер не может / не может достигнуть допустимого DNS-сервера.

Попробуйте выполнить ping google.com на консоли этой машины, чтобы проверить это.

Более гибко использовать curl вместо fopen и file_get_content для открытия веб-страницы.

Странная вещь, которую я обнаружил, заключается в том, что переменная среды SYSTEMROOT должна быть установлена ​​иначе, иначе getaddrinfo() будет работать в Windows 10.

То, что вызвало эту ошибку на моей стороне, было следующей строкой

 include_once dirname(__FILE__) . './Config.php'; 

Мне удалось понять, что это был преступник, когда я добавил строки:

 //error_reporting(E_ALL | E_DEPRECATED | E_STRICT); //ini_set('display_errors', 1); 

ко всем моим php-файлам.

Чтобы решить проблему path issue я могу связать строку с нарушением:

 include_once dirname(__FILE__) . '/Config.php';