Método Node.js dnsPromises.lookup()

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:

  1. hostname: este parámetro especifica una string que denota el nombre de host que se verificará.
  2. 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.jscomando.

Referencia: https://nodejs.org/api/dns.html#dns_dnspromises_lookup_hostname_options

Publicación traducida automáticamente

Artículo escrito por vyer y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *