wake-up-neo.com

PHP Fehler: php_network_getaddresses: getaddrinfo ist fehlgeschlagen:

Beim Versuch, Informationen von einer externen Quelle abzurufen, erhalte ich die folgende Fehlermeldung:

Warnung : php_network_getaddresses: getaddrinfo fehlgeschlagen: Temporärer Fehler bei der Namensauflösung in Zeile # ...

Gestern war alles in Ordnung, also was ist mit diesem Skript passiert, das nicht funktioniert und mir den obigen Fehler gibt? Irgendwelche Lösungen oder Hinweise, um dieses Problem zu lösen?

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

$dom->load($uri);

Ich habe auch versucht, DNS in IP umzuwandeln, aber dann bekomme ich die Warnung: failed to open

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

Ich habe versucht, die http zu entfernen, erhalte aber immer noch den obigen Fehler.

23
Imran Khan

Dies ist darauf zurückzuführen, dass Sie den Hostnamen nicht auflösen können Möglicherweise DNS-Probleme. Host ist nicht erreichbar.

versuchen Sie, die IP-Adresse anstelle des Hostnamens zu verwenden ... Pingen Sie diesen Hostnamen an ... nslookup es ...

29
Dmitri Gudkov

Konfigurieren Sie in der folgenden httpd.conf-Datei die ServerName ordnungsgemäß.

/etc/httpd/conf/httpd.conf

Wie unten:

ServerName 127.0.0.1:80

oder

ServerName sitename

Dies löste ein ähnliches Problem, vor dem ich stand.

7
Anand

In meinem Fall (mein Rechner ist ubuntu 16) füge ich die /etc/resolvconf/resolv.conf.d/base-Datei hinzu, indem ich unter ns Zeilen hinzufüge.

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

führen Sie dann das Update-Skript aus.

resolvconf -u
4
crx4

Ich könnte mir vorstellen, dass sich die von Ihnen verwendeten DNS-Caching-Server nicht ordnungsgemäß verhalten (oder der DNS-Server für die Domäne, die Sie auflösen, nicht ordnungsgemäß funktioniert). Sie können versuchen, die frühere Möglichkeit zu beheben.

Haben Sie mindestens 2 Namenserver auf Ihrem Netzwerkadapter registriert? Sie können Ihren Computer jederzeit austauschen, um einen anderen Cache-DNS-Server zu verwenden, um dies auszuschließen. Versuchen Sie es mit Google:

8.8.8.8
8.8.4.4
3
Steve Mayne

Wenn Sie vorübergehende Ausfälle auf dem Remote-Server, mit dem Sie eine Verbindung herstellen möchten, einschränken können, bleibt nur die lokale Netzwerkkonfiguration als Problem bestehen. 

Die Verwendung der IP-Adresse anstelle des Hostnamens funktioniert nur für die Standarddomäne auf dem Remote-Host.

Was passiert, wenn Sie versuchen, www.google.com (oder dessen IP-Adresse) zu verwenden? Wenn Sie keine Verbindung herstellen können, hat dies etwas mit dem Netzwerk zwischen Ihrem Server und der Außenwelt zu tun.

1
symcbean

Obwohl dies ein alter Thread ist, bin ich kürzlich beim Ausführen von nslookup in CentOS 7 auf den gleichen Fehler gestoßen, und die Google-Suche hat mich zu einigen Diskussionen in SO geführt, die auch diese enthalten. Das Hinzufügen der Nameservereinträge zu /etc/resolv.conf allein war jedoch nicht hilfreich, da die Nameserver-Werte in resolv.conf vom NetworkManager mit den Standard-DNS-Nameservern überschrieben wurden, die sich im eth-Profil befinden, das der Ethernet-IP-Konfiguration zugeordnet ist.

Setzen Sie, wie von @ m-canvar erwähnt, die folgenden Einträge in /etc/resolv.conf

search yourdomain.com
nameserver 8.8.8.8
nameserver 4.2.2.1
nameserver 8.8.4.4

Um das Überschreiben dieser Einträge durch NetworkManager zu verhindern, gibt es zwei Möglichkeiten:

Option 1: Setzen Sie entweder NM_CONTROLLED = no in dem eth-Profil, das dem IPv4/IPv6-Profil zugeordnet ist.

Option 2: Deaktivieren Sie den NetworkManager-Dienst.

chkconfig NetworkManager off
service NetworkManager stop

Weitere Details können in meinem Post zu diesem Fehler und der Lösung gefunden werden.

0

Obwohl ich nicht genau diese Funktion verwendet habe, habe ich den gleichen Fehler erhalten.

In meinem Fall musste ich nur das Protokoll entfernen.

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

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

Und es hat danach gut funktioniert

0
Mendy