2011-11-21 33 views
22

Tengo problemas de DNS con un determinado dominio de destino. Estoy usando fopen() (pero mismo problema con otras funciones) es posible recuperar una imagen, pero me sale este error: Warning: fopen(): php_network_getaddresses: getaddrinfo failed: No such host is knownPHP php_network_getaddresses: getaddrinfo failed: No se conoce dicho host

soy capaz de hacer ping o nslookup el dominio desde la línea de comandos, pero por alguna razón php lanza este error. Cuando intento fopen('http://www.google.com', r); u otros dominios, todo va bien. Pero el dominio mencionado anteriormente simplemente no se resolverá con PHP. He vaciado el DNS, reiniciar Apache, pero sigue sin suerte ..

he tratado con:

  • Windows 7, Apache 2.2 PHP 5.3.6
  • servidor Windows 2008R2, Apache 2.2 PHP 5.3 .6

¿Qué puede hacer que este dominio individual no se resuelva?

+2

Tal vez esto es útil: http://en.wikipedia.org/wiki/Getaddrinfo - y debe preguntarle al administrador del sistema sobre el problema. – hakre

+0

Quizás el dominio realmente no exista o el servidor DNS del dominio de destino no esté disponible para su servidor. Sin embargo, podrías intentar con 'ipconfig/flushdns' para limpiar tu caché. – Polynomial

+0

¿Puedes dar un ejemplo más específico de la URL? (puede quitar el nombre de dominio) – Narf

Respuesta

14

IMO es la forma diferente de resolver un nombre del sistema operativo y PHP.

Probar:

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

y

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

o

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

Debe encontrado algún error de DNS/resolver.

1

Su "localhost" no puede resolver el nombre www.google.com, lo que significa que su máquina no puede/no puede llegar a un servidor DNS válido.

Pruebe ping google.com en la consola de esa máquina para verificar esto.

0

Es más flexible utilizar curl en lugar de y file_get_content para abrir una página web.

-4

Lo que había causado este error de mi parte fue la línea que sigue

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

me las arreglé para darse cuenta que era el culpable cuando he añadido las líneas:

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

a todos mis archivos php.

Para resolver el path issue i canged la línea en cuestión a:

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

Su línea original y línea "cambiada" son las mismas ahora. – Noumenon

+1

Su respuesta no parece estar relacionada para nada. ¿Recibió también el mensaje 'Advertencia: fopen(): php_network_getaddresses: getaddrinfo failed: ¿No se conoce ese host' cuando se usa' include'? Estoy bastante seguro de que no es posible. – Richard

+0

Me di cuenta de que ese error generaba una gran cantidad de problemas no relacionados. Por eso lo publiqué como una respuesta a muchos problemas diferentes. – nyxee

0

Una cosa rara que encontré fue que la variable de entorno SYSTEMROOT debe ser fijado de otra getaddrinfo() se producirá un error en Windows 10.

Cuestiones relacionadas