Advertencia: Php_network_getaddresses: Getaddrinfo falló: no se conoce tal host

Subodh Poudel 15 febrero 2024
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:

hacer ping en la terminal

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 Poudel avatar Subodh Poudel avatar

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

Artículo relacionado - PHP Warning