Node.js dns.lookup() Method - GeeksforGeeks

13 Oct, 2021
The dns.lookup() method is an inbuilt application programming interface of the 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:
dns.lookup( hostname, options, callback )
Parameters: This method has three parameters as mentioned above and described below:
hostname: This parameter specifies a string which denotes the hostname to be checked.
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. The value must be in 4, 6 or 0 where 0 indicates to return both IPv4 and IPv6 value, 4 indicates to return IPv4 and 6 indicates to return IPv6. Its 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 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 its value is 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.
family: It is an integer value that specifies the family of the record. The value must be in 4, 6 or 0 where 0 indicates to return both IPv4 and IPv6 value, 4 indicates to return IPv4 and 6 indicates to return IPv6. Its 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 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 its value is 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.
family: It is an integer value that specifies the family of the record. The value must be in 4, 6 or 0 where 0 indicates to return both IPv4 and IPv6 value, 4 indicates to return IPv4 and 6 indicates to return IPv6. Its 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 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 its value is 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.
callback: It specifies a function to be called after DNS resolution of the hostnames is done.error:It specifies error if generated. For example ‘ENOTFOUND’ is set if the hostname does not exist or the lookup fails.address: It is a string representation of IPv4 and IPv6 addresses.family: It is an integer value that specifies the family of the record. The value must be in 4, 6 or 0 where 0 indicates it’s not an IPv4 or IPv6 address. 0 is an indicator of fault in the name resolution service used by the operating system.Return Value: This method returns error, family of IP addresses and IP addresses through callback function. These data are passed as parameters to the callback function.Below examples illustrate the use of dns.lookup() method in Node.js:Example 1:// Node.js program to demonstrate the // dns.lookup() method    // Accessing dns moduleconst dns = require('dns');  // Setting options for dns.lookup() methodconst options = {          // Setting family as 6 i.e. IPv6    family: 6,    hints: dns.ADDRCONFIG | dns.V4MAPPED,};  // Calling dns.lookup() for hostname geeksforgeeks.org// and displaying them in console as a callbackdns.lookup('geeksforgeeks.org', options, (err, address, family) =>        console.log('address: %j family: IPv%s', address, family));Output:address: "fd00:0:13:13::22da:3e74" family: IPv6
Example 2:// Node.js program to demonstrate the // dns.lookup() method    // Accessing dns moduleconst dns = require('dns');  // Setting options for dns.lookup()// method, all as trueconst options = {    all:true,};  // Calling dns.lookup() for hostname//  geeksforgeeks.org and displaying// them in console as a callbackdns.lookup('geeksforgeeks.org', options, (err, addresses) =>        console.log('addresses: %j', addresses));Output:addresses: [
    {"address":"34.218.62.116","family":4},
    {"address":"fd00:0:13: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_dns_lookup_hostname_options_callbackMy Personal Notes
arrow_drop_upSave
error:It specifies error if generated. For example ‘ENOTFOUND’ is set if the hostname does not exist or the lookup fails.address: It is a string representation of IPv4 and IPv6 addresses.family: It is an integer value that specifies the family of the record. The value must be in 4, 6 or 0 where 0 indicates it’s not an IPv4 or IPv6 address. 0 is an indicator of fault in the name resolution service used by the operating system.
error:It specifies error if generated. For example ‘ENOTFOUND’ is set if the hostname does not exist or the lookup fails.
address: It is a string representation of IPv4 and IPv6 addresses.
family: It is an integer value that specifies the family of the record. The value must be in 4, 6 or 0 where 0 indicates it’s not an IPv4 or IPv6 address. 0 is an indicator of fault in the name resolution service used by the operating system.
Return Value: This method returns error, family of IP addresses and IP addresses through callback function. These data are passed as parameters to the callback function.
Below examples illustrate the use of dns.lookup() method in Node.js:
Example 1:
// Node.js program to demonstrate the // dns.lookup() method    // Accessing dns moduleconst dns = require('dns');  // Setting options for dns.lookup() methodconst options = {          // Setting family as 6 i.e. IPv6    family: 6,    hints: dns.ADDRCONFIG | dns.V4MAPPED,};  // Calling dns.lookup() for hostname geeksforgeeks.org// and displaying them in console as a callbackdns.lookup('geeksforgeeks.org', options, (err, address, family) =>        console.log('address: %j family: IPv%s', address, family));
Output:
address: "fd00:0:13:13::22da:3e74" family: IPv6

Example 2:
// Node.js program to demonstrate the // dns.lookup() method    // Accessing dns moduleconst dns = require('dns');  // Setting options for dns.lookup()// method, all as trueconst options = {    all:true,};  // Calling dns.lookup() for hostname//  geeksforgeeks.org and displaying// them in console as a callbackdns.lookup('geeksforgeeks.org', options, (err, addresses) =>        console.log('addresses: %j', addresses));
Output:
addresses: [
    {"address":"34.218.62.116","family":4},
    {"address":"fd00:0:13: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_dns_lookup_hostname_options_callback
Node.js-dns-module
Node.js
Web Technologies
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
How to update Node.js and NPM to next version ?
Node.js fs.readFileSync() Method
Node.js fs.writeFile() Method
How to update NPM ?
Difference between promise and async await in Node.js
Remove elements from a JavaScript Array
Convert a string to an integer in JavaScript
How to fetch data from an API in ReactJS ?
How to insert spaces/tabs in text using HTML/CSS?
Difference between var, let and const keywords in JavaScript