El método dnsPromises.lookup() es una interfaz de programación de aplicaciones incorporada del objeto de promesas del módulo dns que se utiliza para resolver las direcciones IP del nombre de host especificado para parámetros dados en el primer registro A (IPv4) o AAAA (IPv6) encontrado.
Sintaxis:
dnsPromises.lookup( hostname, options )
Parámetros: este método tiene dos parámetros, como se mencionó anteriormente y se describe a continuación:
- hostname: este parámetro especifica una string que denota el nombre de host que se verificará.
- opciones: Tiene la forma de un entero o de un objeto. Especifica las opciones que se utilizarán durante la búsqueda.
- familia: Es un valor entero que especifica la familia del registro. Su valor debe estar en 4, 6 o 0, 0 indica devolver tanto IPv4 como IPv6, 4 indica devolver IPv4 y 6 devolver IPv6. El valor predeterminado es 0.
- sugerencias: es un número que especifica uno o más indicadores getaddrinfo. Se pueden pasar más de una bandera haciendo OR bit a bit de sus valores.
- all: Es un parámetro booleano. Si se establece en TRUE, la devolución de llamada devuelve todas las direcciones resueltas en una array; de lo contrario, devuelve una sola dirección. Su valor por defecto es FALSO.
- textualmente: es un parámetro booleano. Si se establece en TRUE, la devolución de llamada obtiene todas las direcciones IPv4 e IPv6 resueltas según lo devuelto por el sistema de resolución de DNS sin ordenar. Si se establece en FALSO, las direcciones IPv4 se colocan antes que las direcciones IPv6. El valor predeterminado es FALSO ahora, pero se espera que sea VERDADERO en un futuro cercano.
Valor devuelto: este método devuelve error, familia de direcciones IP y direcciones IP.
Los siguientes ejemplos ilustran el uso del método dnsPromises.lookup() en Node.js:
Ejemplo 1:
// Node.js program to demonstrate the // dnsPromises.lookup() method // Accessing promises object from dns module const dns = require('dns'); const dnsPromises = dns.promises; // Setting options for dnsPromises.lookup() method const options = { // Setting family as 6 i.e. IPv6 family: 6, hints: dns.ADDRCONFIG | dns.V4MAPPED, }; // Calling dnsPromises.lookup() for hostname // geeksforgeeks.org dnsPromises.lookup('geeksforgeeks.org', options).then((response) => { console.log(' family: IPv%s address: %j', response.family, response.address); });
Producción:
family: IPv6 address: "fd00:0:14:13::22da:3e74"
Ejemplo 2:
// Node.js program to demonstrate the // dnsPromises.lookup() method // Accessing promises object from dns module const dns = require('dns'); const dnsPromises = dns.promises; // Setting options for dnsPromises.lookup() // method, all as true const options = { all:true, }; dnsPromises.lookup('geeksforgeeks.org', options).then((response) => { console.log('addresses: %j', response); });
Producción:
addresses: [{"address":"34.218.62.116", "family":4}, {"address":"fd00:0:14:13::22da:3e74", "family":6}]
Ejemplo 3:
// Node.js program to demonstrate the // dnsPromises.lookup() method // Accessing promises object from dns module const dns = require('dns'); const dnsPromises = dns.promises; // Setting options for dnsPromises.lookup() // method, all as true const options = { all:true, }; // Asynchronous function (async function() { // Address from lookup function const addresses = await dnsPromises.lookup( 'geeksforgeeks.org', options); // Printing addresses console.log("from async: "); console.log(addresses); })();
Producción:
from async: [ { address: '34.218.62.116', family: 4 }, { address: 'fd00:0:14:13::22da:3e74', family: 6 } ]
Nota: El programa anterior se compilará y ejecutará usando el node index.js
comando.
Referencia: https://nodejs.org/api/dns.html#dns_dnspromises_lookup_hostname_options