web-dev-qa-db-fra.com

PHP php_network_getaddresses: getaddrinfo a échoué: aucun de ces hôtes n'est connu

J'ai des problèmes de DNS avec un certain domaine cible. J'utilise fopen() (mais le même problème avec d'autres fonctions) pour récupérer une image, mais le message d'erreur suivant s'affiche: Warning: fopen(): php_network_getaddresses: getaddrinfo failed: No such Host is known

Je suis capable de cingler ou nslookup le domaine de la commande Invite, mais pour une raison quelconque, php lève cette erreur. Lorsque j'essaie fopen('http://www.google.com', r); ou d'autres domaines, tout se passe bien. Mais le domaine mentionné ci-dessus ne résoudra tout simplement pas avec PHP. J'ai vidé le DNS, redémarré Apache, mais toujours pas de chance ..

J'ai essayé avec:

  • Windows 7, Apache 2.2 PHP 5.3.6
  • Serveur Windows 2008r2, Apache 2.2 PHP 5.3.6

Qu'est-ce qui peut empêcher ce domaine unique de se résoudre?

26
Richard

OMI c'est la manière différente de résoudre un nom de l'OS et de PHP.

Essayer:

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

et

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

ou 

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

Vous devriez trouver une erreur DNS/résolveur. 

17
Ivan Buttinoni

Votre "hôte local" ne peut pas résoudre le nom www.google.com, ce qui signifie que votre ordinateur n'atteint pas/ne peut pas atteindre un serveur DNS valide.

Essayez de vérifier google.com sur la console de cette machine. 

1
anil

Il est plus flexible d’utiliser curl au lieu de fopen et file_get_content pour ouvrir une page Web.

1
Mostafa Lavaei

Une chose étrange que j'ai trouvée est que la variable d'environnement SYSTEMROOT doit être définie, sinon getaddrinfo() échouera sous Windows 10.

0
bonger