php network getaddresses: getaddrinfo failed: Nombre o servicio no conocido


Aquí hay un fragmento de mi código

$fp = fsockopen($s['url'], 80, $errno, $errstr, 5);
if($fp){
        fwrite($fp, $out);
        fclose($fp);

Cuando lo corro, produce:

No se puede conectar a www.mydomain.net/1/file.php:80 (php_network_getaddresses: getaddrinfo failed: Name or service not known

No puedo entender por qué. Cualquier ayuda sería muy apreciada.

EDITAR: Olvidé mencionar que estoy usando esto para enviar datos GET a la $s['url']

Author: Machavity, 2010-04-18

10 answers

Si solo desea enviar GET data a la URL, debe usar algo sencillo como file_get_contents ();

$myGetData = "?var1=val1&var2=val2";
file_get_contents($url.$myGetData);
 20
Author: elias,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-04-18 08:16:44

No puede abrir una conexión directamente a una ruta en un host remoto usando fsockopen. La url www.mydomain.net/1/file.php contiene una ruta, cuando el único valor válido para ese primer parámetro es el host, www.mydomain.net.

Si está intentando acceder a una URL remota, entonces file_get_contents() es su mejor opción. Puede proporcionar una URL completa a esa función, y obtendrá el contenido en esa ubicación utilizando una solicitud HTTP normal.

Si solo desea enviar una solicitud HTTP e ignorar el respuesta, podría usar fsockopen() y enviar manualmente los encabezados de solicitud HTTP, ignorando cualquier respuesta. Sin embargo, podría ser más fácil con cURL, o simplemente con fopen(), que abrirá la conexión pero no necesariamente leerá ninguna respuesta. Si quieres hacerlo con fsockopen(), podría verse algo como esto:

$fp = fsockopen("www.mydomain.net", 80, $errno, $errstr, 30);
fputs($fp, "GET /1/file.php HTTP/1.1\n");
fputs($fp, "Host: www.mydomain.net\n");
fputs($fp, "Connection: close\n\n"); 

Eso le deja cualquier manejo de errores a usted, por supuesto, pero significaría que no perdería tiempo leyendo la respuesta.

 35
Author: zombat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-04-18 08:24:19

Tuve un problema similar en mi servidor de pruebas local y dominios de prueba locales, por ejemplo: www.testdomain.loc con la función GetImageSize();

Solucionado añadiendo el nombre de host en el fichero hosts del servidor local:

En el archivo /etc/hosts agregué:

192.168.1.1 www.testdomain.loc

Espero que esto ayude a alguien

 21
Author: Johan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-20 11:04:07
$url = "http:user:pass@//www.example.com/abc.php?var1=def";
$url = urlencode($url);
$contents = file_get_contents(urldecode($url));
echo $contents;
 3
Author: Ap.Muthu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-24 15:07:36

Está tratando de abrir un socket a un archivo en el host remoto que no es correcto. puede hacer una conexión de socket (TCP / UDP) a un número de puerto en un host remoto. así que tu código debería ser así:

fsockopen('www.mysite.com', 80);

Si está intentando crear un recurso de puntero de archivo a un archivo remoto, puede usar la función fopen (). pero para hacer esto, también debe especificar el protocolo de la aplicación.

PHP proporciona envoltorios de flujo predeterminados para la apertura de archivos URL. basado en el esquema de la URL el wrapper de flujo apropiado se llamará internamente. la URL que está intentando abrir no tiene un esquema válido para esta solución. asegúrese de que hay un esquema como "http://" o "ftp://" en ella.

Así que el código sería así:

$fp = fopen('http://www.mysite.com/path/file.txt');

Además, no creo que el contenedor de flujo HTTP (que maneja acciones sobre recursos de archivos en URLs con esquema http) soporte la escritura de datos. puedes usar fread() para leer el contenido de una URL a través de HTTP, pero no estoy seguro sobre escritura.

EDITAR: a partir de comentarios y otras respuestas me di cuenta de que querría enviar una solicitud HTTP a la URL especificada. los métodos descritos en esta respuesta son para cuando desea recibir datos de la URL remota. si desea enviar datos, puede usar http_request () para hacer esto.

 2
Author: farzad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-04-18 08:24:16

Estaba recibiendo el mismo error de fsocket () y acabo de actualizar mis archivos hosts

  1. He iniciado sesión a través de SSH en el servidor CentOS. NOMBRE DE USUARIO y CONTRASEÑA tipo
  2. cd/etc /
  3. ls / / "just to watch list"
  4. vi hosts / / "edit the host file"
  5. i / / "para poner el archivo en modo de inserción"
  6. 95.183.24.10 [mail_server_name] en mi caso ("mail.kingologic.com")
  7. Pulse la tecla ESC
  8. presione ZZ

Espero que resuelva su problema

Para cualquier otra consulta, por favor envíeme un mensaje a http://kingologic.com

 1
Author: Ali Khurram,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-26 15:03:31

En mi caso este error fue causado por /etc/nsswitch incorrecto.configuración de conf en debian.

He sido reemplazado string

hosts:          files myhostname mdns4_minimal [NOTFOUND=return] dns

Con

hosts:          files dns

Y todo funciona ahora mismo.

 1
Author: Constantin Boulatnikoff,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-06 15:02:32

Tuvo tal problema (con https://github.com/PHPMailer/PHPMailer ), simplemente recarga PHP y todo comienza a funcionar

Para Centos 6 y 7:

service php-fpm restart 
 1
Author: Sanya Snex,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-12 10:39:40

Intenta establecer ENV PATH. Añade la ruta PHP a la RUTA ENV.

Para que esta extensión funcione, hay archivos DLL que deben estar disponibles para la ruta del sistema Windows. Para obtener información sobre cómo hacer esto, consulte las preguntas frecuentes tituladas "Cómo agrego mi directorio PHP a la ruta en Windows". Aunque copiar archivos DLL de la carpeta PHP en el directorio del sistema Windows también funciona (porque el directorio del sistema está por defecto en la ruta del sistema), esto no es recomendable. Esta extensión requiere que los siguientes archivos estén en la ruta: libeay32.dll

Http://php.net/manual/en/openssl.installation.php

 0
Author: DucTM,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-06 06:40:55

En word simple su sitio ha sido bloqueado para acceder a la red. puede ser que haya automatizado algún script y haya causado que se bloquee todo su sitio web. la mejor manera de resolver esto es ponerse en contacto con ese sitio y decirle a su problema. si el problema es genuino, pueden considerar desbloquear

 0
Author: Steeve,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-23 13:18:15