Open In App

Node.js dnsPromises.lookup() Method

Improve
Improve
Like Article
Like
Save
Share
Report

The dnsPromises.lookup() method is an inbuilt application programming interface of the promises object of dns module which is used to resolve IP addresses of the specified hostname for given parameters into the first found A (IPv4) or AAAA (IPv6) record.

Syntax:

dnsPromises.lookup( hostname, options )

Parameters: This method has two parameters as mentioned above and described below:

  1. hostname: This parameter specifies a string which denotes the hostname to be checked.
  2. options: It is in the form of an integer or an object. It specifies the options to be used during lookup.
    • family: It is an integer value that specifies the family of the record. Its value must be in 4, 6 or 0, 0 indicates to return both IPv4 and IPv6, 4 indicates to return IPv4 and 6 to return IPv6. The default value is 0.
    • hints: It is a number that specifies one or more getaddrinfo flag(s). More than one flags can be passed by doing bitwise OR of their values.
    • all: It is a Boolean parameter. If it is set to TRUE then callback returns all resolved address in an array, otherwise it returns single address. Its default value is FALSE.
    • verbatim: It is a Boolean parameter. If it set to TRUE then callback get all resolved IPv4 and IPv6 address as returned by DNS resolver unordered. If set to FALSE IPv4 addresses are placed before IPv6 addresses. Default value is FALSE now but expected to be TRUE in near future.

Return Value: This method returns error, family of IP addresses and IP addresses.

Below examples illustrate the use of dnsPromises.lookup() method in Node.js:

Example 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);
});


Output:

 family: IPv6 address: "fd00:0:14:13::22da:3e74"

Example 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);
});


Output:

addresses: [{"address":"34.218.62.116", "family":4},
{"address":"fd00:0:14:13::22da:3e74", "family":6}]

Example 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);   
})();


Output:

from async:
[ { address: '34.218.62.116', family: 4 },
  { address: 'fd00:0:14:13::22da:3e74', family: 6 } ]

Note: The above program will compile and run by using the node index.js command.

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



Last Updated : 13 Oct, 2021
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads