Use require('dns') to access this module.

Here is an example which resolves '' then reverse resolves the IP addresses which are returned.

var dns = require('dns');

dns.resolve4('', function (err, addresses) {
  if (err) throw err;

  console.log('addresses: ' + JSON.stringify(addresses));

  addresses.forEach(function (a) {
    dns.reverse(a, function (err, domains) {
      if (err) {
        console.log('reverse for ' + a + ' failed: ' +
      } else {
        console.log('reverse for ' + a + ': ' +

dns.lookup(domain, family=null, callback)Edit

Resolves a domain (e.g. '') into the first found A (IPv4) or AAAA (IPv6) record.

The callback has arguments (err, address, family). The addressargument is a string representation of a IP v4 or v6 address. The familyargument is either the integer 4 or 6 and denotes the family of address (not necessarily the value initially passed to lookup).

dns.resolve(domain, rrtype='A', callback)Edit

Resolves a domain (e.g. '') into an array of the record types specified by rrtype. Valid rrtypes are A (IPV4 addresses), AAAA (IPV6 addresses), MX (mail exchange records), TXT (text records), SRV (SRV records), and PTR (used for reverse IP lookups).

The callback has arguments (err, addresses). The type of each item inaddresses is determined by the record type, and described in the documentation for the corresponding lookup methods below.

On error, err would be an instanceof Error object, where err.errno is one of the error codes listed below and err.message is a string describing the error in English.

dns.resolve4(domain, callback)Edit

The same as dns.resolve(), but only for IPv4 queries (A records).addresses is an array of IPv4 addresses (e.g. ['', '', '']).

dns.resolve6(domain, callback)Edit

The same as dns.resolve4() except for IPv6 queries (an AAAA query).

dns.resolveMx(domain, callback)Edit

The same as dns.resolve(), but only for mail exchange queries (MXrecords).

addresses is an array of MX records, each with a priority and an exchange attribute (e.g. [{'priority': 10, 'exchange': ''},...]).

dns.resolveTxt(domain, callback)Edit

The same as dns.resolve(), but only for text queries (TXT records).addresses is an array of the text records available for domain (e.g.,['v=spf1 ip4: ~all']).

dns.resolveSrv(domain, callback)Edit

The same as dns.resolve(), but only for service records (SRV records).addresses is an array of the SRV records available for domain. Properties of SRV records are priority, weight, port, and name (e.g., [{'priority': 10, {'weight': 5, 'port': 21223, 'name': ''}, ...]).

dns.reverse(ip, callback)Edit

Reverse resolves an ip address to an array of domain names.

The callback has arguments (err, domains).

If there an an error, err will be non-null and an instanceof the Error object.

Each DNS query can return an error code.

  • dns.TEMPFAIL: timeout, SERVFAIL or similar.
  • dns.PROTOCOL: got garbled reply.
  • dns.NXDOMAIN: domain does not exists.
  • dns.NODATA: domain exists but no data of reqd type.
  • dns.NOMEM: out of memory while processing.
  • dns.BADQUERY: the query is malformed.

Ad blocker interference detected!

Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.