Advertencia: Php_network_getaddresses: Getaddrinfo falló: no se conoce tal host
Es posible que haya encontrado la siguiente advertencia al trabajar con bases de datos, servidores o servicios web en PHP.
Warning : php_network_getaddresses: getaddrinfo failed: No such host is known
La advertencia se produce cuando su sistema no puede encontrar un servidor DNS válido. Este artículo presentará un método para deshacerse de tales advertencias.
Asegúrese de que el host existe utilizando la función PHP dns_get_record()
Podemos interactuar y leer contenidos de un sitio web utilizando las funciones de archivo como fopen()
, fgets()
y fclose()
en PHP. Al abrir una URL, puede encontrar un mensaje de advertencia que dice No se conoce tal host
.
La advertencia completa se muestra al principio del artículo. Una razón probable de la advertencia es que es posible que el host no exista.
Por lo tanto, es un buen enfoque para verificar el estado del host.
Podemos usar la función PHP dns_get_record()
para ver los registros de recursos DNS de un host en particular. Podemos establecer el nombre de host en la función y obtener su información de DNS.
Por ejemplo, cree una variable $resultado
y asígnele la función dns_get_record()
. Escriba el nombre de host stackoverflow.com
como parámetro de la función.
A continuación, utilice print_r()
para mostrar la información de la variable $resultado
.
Código de ejemplo:
$result = dns_get_record("stackoverflow.com");
echo '<pre>', print_r($result), '</pre>';
Producción :
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
La salida muestra los registros de recursos DNS de stackoverflow.com
. Asegura que el nombre de host existe.
Si el nombre de host no existe, la salida será algo como esto.
Producción :
Array
(
)
1
También puedes comprobar la resolución del nombre con el comando ping
. Escriba lo siguiente en la terminal.
ping stackoverflow.com
Producción:
Si el host no existe, la salida es algo como esto.
ping: pokharasahar.com: Name or service not known
Aquí, hemos utilizado el nombre de host pokharasahar.com
, que no existe.
Por lo tanto, podemos realizar la resolución de nombres utilizando la función dns_get_record()
para garantizar que el dominio existe. De esta manera, podemos deshacernos de la advertencia de PHP php_network_getaddresses: getaddrinfo falló
.
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