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.
// DNS resolution — resolve hostnames to IP addresses // Resolución DNS — resolver nombres de host a direcciones IP fn main() -> int { // resolve() returns the IP address as a string let ip: String = resolve("localhost") print("localhost -> " + ip) // Resolve a public domain let nyx_ip: String = resolve("nyxlang.com") print("nyxlang.com -> " + nyx_ip) // Use the result to connect or display if nyx_ip.length() > 0 { print("resolution successful") } else { print("resolution failed") } return 0 }
localhost -> 127.0.0.1 nyxlang.com -> 192.0.2.10 resolution successful
Cómo funciona
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.