2011-06-08 7 views
16

tratando de obtener información de una fuente externa, estoy recibiendo el error siguiente:PHP error: php_network_getaddresses: getaddrinfo fallaron: (al obtener información de otro sitio.)

Warning: php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution in line #...

Ayer todo estaba bien, por lo ¿Qué pasó con este script, que no funciona y me da el error anterior? ¿Alguna solución o sugerencia para resolver este problema?

$uri = "http://api.hostip.info/?ip=$ip&position=true"; 

$dom->load($uri); 

También probé mediante la conversión de DNS para IP, pero entonces consigo la advertencia: failed to open

$uri = "174.129.200.54/?ip=$ip&position=true"; 

traté de quitar el http pero todavía estoy recibiendo el error anterior.

+0

@Cold de Hawai: Ok, estoy actualizando mi pregunta. –

+0

¿Puedes abrir el enlace directamente en tu navegador? Si no, eso no es un problema de PHP. Hostip.info podría tenerlo bloqueado para acceder a su sitio por mal uso o lo que sea. – sanmai

+0

En mi computadora este comando funciona bien: 'curl" http://api.hostip.info/?ip=\'curl whatismyip.org \ '& position = true" ' – sanmai

Respuesta

19

Es porque no se puede resolver el nombre de host DNS Tal problemas, el anfitrión es inalcanzable ...

intenta utilizar la dirección IP en lugar del nombre de host ... de ping esta nombre de host ... nslookup it ...

+0

convierto "api.hostip.info" en "174.129.200.54" pero aún no funcionaba y el mensaje de advertencia => no se pudo cargar ... –

+1

es correcto porque api.hostip.info no es el predeterminado 174.129.200.54 –

+0

prueba wget http : //api.hostip.info/? ip = $ ip & position = true si devuelve el xml correcto, el problema no está en la conexión ... –

3

Me imagino que los servidores DNS de caché que está utilizando no se están comportando correctamente (o el servidor DNS para el dominio que está resolviendo no funciona correctamente). Puedes intentar arreglar la posibilidad anterior.

¿Tiene al menos 2 servidores de nombres registrados en su adaptador de red? Siempre puede cambiar su computadora para usar un servidor DNS de caché diferente para descartar esto. Prueba Google de:

8.8.8.8 
8.8.4.4 
+0

pruebo muchos métodos, pero desafortunadamente no tuve éxito, y tampoco hay un método directo para esto ... me quedé atrapado ... qué hacer ... –

+0

No es necesario un método: este es el DNS del caché de su servidor configuración (si tiene acceso). –

+0

Pero, ya ejecuto este código y le doy salida, pero ahora no funciona. –

1

Si puede descontar las interrupciones transitorias en el servidor remoto al que está tratando de conectarse, eso simplemente deja la configuración de red local como un problema.

El uso de la dirección IP en lugar del nombre de host solo funcionará para el dominio predeterminado en el host remoto.

¿Qué ocurre cuando intentas usar www.google.com (o su dirección IP)? Si aún no puede conectarse, entonces tiene algo que ver con la red entre su servidor y el mundo exterior.

+0

puede ser un problema interno de configuración del servidor. –

7

En el siguiente archivo httpd.conf, configure el ServerName correctamente.

/etc/httpd/conf/httpd.conf

, como a continuación:

ServerName 127.0.0.1:80 

o

ServerName sitename 

Este problema similar resuelto que estaba enfrentando.

+0

No tengo IDEA por qué esto hace la diferencia, pero también solucionó mi problema. Periódicamente recibiría fallas de DNS y la configuración de ServerName solucionó el problema. – David

3

En mi caso (mi máquina es ubuntu 16), anexo el archivo /etc/resolvconf/resolv.conf.d/base agregando debajo de las líneas ns.

nameserver 8.8.8.8 
nameserver 4.2.2.1 
nameserver 2001:4860:4860::8844 
nameserver 2001:4860:4860::8888 

continuación, ejecutar el script de actualización,

resolvconf -u 
+0

¿por qué eso es trabajo? Necesito saber esto .. –

+1

@AbdulAzizAlBasyir Debido a la resolución de DNS, la secuencia de comandos intenta reconocer la dirección. Puede encontrar más información en [aquí.] (Http://manpages.ubuntu.com/manpages/zesty/man5/resolv.conf.5.html). –

Cuestiones relacionadas