Nyx con Ejemplos

DNS Resolve

resolve(hostname) es una función incorporada que realiza resolución DNS, convirtiendo un nombre de host en una cadena de dirección IP. Este es el primer paso en cualquier conexión de red — antes de poder hacer tcp_connect a un host, se necesita su IP.

Código

// DNS resolution — resolve hostnames to IP addresses

fn main() -> int {
    let ip: String = resolve("localhost")
    print("localhost -> " + ip)

    let nyx_ip: String = resolve("nyxlang.com")
    print("nyxlang.com -> " + nyx_ip)

    if nyx_ip.length() > 0 {
        print("resolution successful")
    } else {
        print("resolution failed")
    }

    return 0
}

Salida

localhost -> 127.0.0.1
nyxlang.com -> 52.207.231.44
resolution successful

Explicación

resolve llama al resolvedor DNS del sistema (vía getaddrinfo en el runtime) y devuelve la primera dirección IPv4 como una cadena en notación decimal con puntos. Si la resolución falla, devuelve una cadena vacía.

Para localhost, el resultado típicamente proviene de /etc/hosts en lugar de una consulta DNS. Para dominios públicos como nyxlang.com, el runtime realiza una búsqueda DNS completa a través de los servidores de nombres configurados.

Esta es una llamada síncrona y bloqueante. Para servidores de alto rendimiento que necesiten resolución no bloqueante, se puede considerar ejecutar el resolve en un hilo separado con thread_spawn.

← Anterior Siguiente →

Source: examples/by-example/45-dns-resolve.nx