web-dev-qa-db-fra.com

PHP error: php_network_getaddresses: getaddrinfo a échoué: (en obtenant des informations d'un autre site.)

En essayant d'obtenir des informations d'une source externe, je reçois le message d'erreur suivant:

Avertissement : php_network_getaddresses: getaddrinfo a échoué: échec temporaire de la résolution du nom dans la ligne # ...

Hier, tout allait bien, que s'est-il passé pour ce script, qui ne fonctionne pas et me donne l'erreur ci-dessus? Une solution ou un indice pour résoudre ce problème?

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

$dom->load($uri);

J'ai aussi essayé en convertissant DNS en IP mais je reçois l'avertissement suivant: failed to open

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

J'ai essayé d'enlever la http mais j'obtiens toujours l'erreur ci-dessus.

23
Imran Khan

C'est parce que vous ne pouvez pas résoudre le nom d'hôte Peut-être des problèmes de DNS, l'hôte est inaccessible ...

essayez d’utiliser l’adresse IP au lieu du nom de l’hôte ... ping ce nom d’hôte ... nslookup it ...

29
Dmitri Gudkov

Dans le fichier httpd.conf suivant, configurez correctement la ServerName.

/etc/httpd/conf/httpd.conf

Comme ci-dessous:

ServerName 127.0.0.1:80

ou

ServerName sitename

Ce problème similaire résolu je faisais face.

7
Anand

Dans mon cas (ma machine est ubuntu 16), j'ajoute le fichier /etc/resolvconf/resolv.conf.d/base en ajoutant les lignes ci-dessous.

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

puis exécutez le script de mise à jour,

resolvconf -u
4
crx4

J'imagine que les serveurs DNS en cache que vous utilisez ne se comportent pas correctement (ou que le serveur DNS du domaine que vous résolvez ne fonctionne pas correctement). Vous pouvez essayer de réparer l'ancienne possibilité.

Avez-vous au moins 2 serveurs de noms enregistrés sur votre carte réseau? Vous pouvez toujours permuter votre ordinateur pour utiliser un serveur DNS de mise en cache différent pour éliminer ce problème. Essayez Google:

8.8.8.8
8.8.4.4
3
Steve Mayne

Si vous pouvez réduire les pannes transitoires sur le serveur distant auquel vous essayez de vous connecter, le problème est alors que la configuration du réseau local pose problème. 

L'utilisation de l'adresse IP au lieu du nom d'hôte ne fonctionnera que pour le domaine par défaut de l'hôte distant.

Que se passe-t-il lorsque vous essayez d'utiliser www.google.com (ou son adresse IP)? Si vous ne pouvez toujours pas vous connecter, cela a quelque chose à voir avec le réseau entre votre serveur et le monde extérieur.

1
symcbean

Bien que ce soit un vieux fil de discussion, j’ai rencontré la même erreur récemment lors de l’exécution de nslookup dans CentOS 7 et la recherche sur Google m’a amené à certaines discussions dans SO, dont celle-ci. Toutefois, l'ajout des entrées de serveurs de noms au fichier /etc/resolv.conf seul n'a pas aidé, car les valeurs du serveur de noms dans resolv.conf ont été écrasées par NetworkManager avec les serveurs de noms DNS par défaut figurant dans le profil eth associé à la configuration IP d'Ethernet.

Comme mentionné par @ m-canvar, définissez les entrées suivantes dans /etc/resolv.conf

search yourdomain.com
nameserver 8.8.8.8
nameserver 4.2.2.1
nameserver 8.8.4.4

Pour éviter de remplacer ces entrées par NetworkManager, il existe deux approches:

Option 1: Définissez NM_CONTROLLED = no dans le profil eth associé au profil IPv4/IPv6.

Option 2: Désactivation du service NetworkManager.

chkconfig NetworkManager off
service NetworkManager stop

Plus de détails peuvent être renvoyés dans mon post à propos de cette erreur et solution .

0