Warnung: Php_network_getaddresses: Getaddrinfo fehlgeschlagen: Kein solcher Host bekannt
Möglicherweise ist Ihnen beim Arbeiten mit Datenbanken, Servern oder Webdiensten in PHP die folgende Warnung begegnet.
Warning : php_network_getaddresses: getaddrinfo failed: No such host is known
Die Warnung wird verursacht, wenn Ihr System keinen gültigen DNS-Server finden kann. Dieser Artikel stellt eine Methode vor, um solche Warnungen loszuwerden.
Stellen Sie sicher, dass der Host mit der PHP-Funktion dns_get_record()
existiert
Wir können mit den Dateifunktionen wie fopen()
, fgets()
und fclose()
in PHP interagieren und Inhalte von einer Website lesen. Beim Öffnen einer URL wird möglicherweise eine Warnmeldung angezeigt, die besagt, dass kein solcher Host bekannt ist.
Die vollständige Warnung wird am Anfang des Artikels angezeigt. Ein wahrscheinlicher Grund für die Warnung ist, dass der Host möglicherweise nicht existiert.
Daher ist es ein guter Ansatz, den Status des Hosts zu überprüfen.
Wir können die PHP-Funktion dns_get_record()
verwenden, um die DNS-Ressourceneinträge eines bestimmten Hosts anzuzeigen. Wir können den Hostnamen in der Funktion festlegen und seine DNS-Informationen abrufen.
Erstellen Sie beispielsweise eine Variable $result
und weisen Sie ihr die Funktion dns_get_record()
zu. Schreiben Sie den Hostnamen stackoverflow.com
als Parameter an die Funktion.
Als nächstes verwenden Sie print_r()
, um die Informationen der $result
-Variablen anzuzeigen.
Beispielcode:
$result = dns_get_record("stackoverflow.com");
echo '<pre>', print_r($result), '</pre>';
Ausgang:
Array
(
[0] => Array
(
[host] => stackoverflow.com
[class] => IN
[ttl] => 186
[type] => A
[ip] => 151.101.129.69
)
[1] => Array
(
[host] => stackoverflow.com
[class] => IN
[ttl] => 186
[type] => A
[ip] => 151.101.65.69
)
[2] => Array
(
[host] => stackoverflow.com
[class] => IN
[ttl] => 186
[type] => A
[ip] => 151.101.1.69
)
[3] => Array
(
[host] => stackoverflow.com
[class] => IN
[ttl] => 186
[type] => A
[ip] => 151.101.193.69
)
)
1
Die Ausgabe zeigt die DNS Resource Records von stackoverflow.com
. Es stellt sicher, dass der Hostname existiert.
Wenn der Hostname nicht existiert, sieht die Ausgabe in etwa so aus.
Ausgang:
Array
(
)
1
Sie können die Namensauflösung auch mit dem Befehl ping
überprüfen. Geben Sie im Terminal Folgendes ein.
ping stackoverflow.com
Ausgang:
Wenn der Host nicht existiert, sieht die Ausgabe in etwa so aus.
ping: pokharasahar.com: Name or service not known
Hier haben wir den Hostnamen pokharasahar.com
verwendet, der nicht existiert.
Daher können wir mit der Funktion dns_get_record()
eine Namensauflösung durchführen, um sicherzustellen, dass die Domain existiert. Auf diese Weise können wir die PHP-Warnung php_network_getaddresses: getaddrinfo failed
loswerden.
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn