Node.js | dnsPromises.lookup() Method

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:

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


Output:

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

Example 2:

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


Output:

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

Example 3:

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


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




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.


Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.