Skip to content

Instantly share code, notes, and snippets.

@umidjons
Last active August 18, 2016 03:55
Show Gist options
  • Save umidjons/03546ec5df1c982db57320eaffcccf1b to your computer and use it in GitHub Desktop.
Save umidjons/03546ec5df1c982db57320eaffcccf1b to your computer and use it in GitHub Desktop.
Find out IP or Record Types of the domain: DNS module example

Find out IP of the domain: DNS module example

var dns = require('dns');

// get first found IP
dns.lookup('oreilly.com', (err, address, family) => {
    if (err) {
        return console.log(err);
    }

    console.log('address=', address);
    console.log('family=', family);
});

// get all IPs with family
dns.lookup('oreilly.com', {all: true}, (err, addresses) => {
    if (err) {
        return console.log(err);
    }

    console.log('addresses=', addresses);
});

Sample output:

addresses= [ { address: '199.27.145.65', family: 4 },
  { address: '199.27.145.64', family: 4 },
  { address: '199.27.145.65', family: 4 },
  { address: '199.27.145.64', family: 4 } ]
address= 199.27.145.65
family= 4

Resolve hostname into record types

'use strict';

var dns = require('dns');

const types = ['A', 'AAAA', 'MX', 'TXT', 'SRV', 'PTR', 'NS', 'CNAME', 'SOA'];

for (let type of types) {
    dns.resolve('oreilly.com', type, (err, addresses) => {
        if (err) {
            return console.log(`\nType(${type}):\n`, err);
        }

        console.log(`\nType(${type}) addresses:\n`, addresses, '\n');
    });
}

Sample output:

Type(A) addresses:
 [ '199.27.145.65', '199.27.145.64' ]


Type(AAAA):
 { Error: queryAaaa ENODATA oreilly.com
    at errnoException (dns.js:28:10)
    at QueryReqWrap.onresolve [as oncomplete] (dns.js:216:19)
  code: 'ENODATA',
  errno: 'ENODATA',
  syscall: 'queryAaaa',
  hostname: 'oreilly.com' }

Type(MX) addresses:
 [ { exchange: 'aspmx3.googlemail.com', priority: 10 },
  { exchange: 'aspmx.l.google.com', priority: 1 },
  { exchange: 'alt1.aspmx.l.google.com', priority: 5 },
  { exchange: 'alt2.aspmx.l.google.com', priority: 5 },
  { exchange: 'aspmx2.googlemail.com', priority: 10 } ]


Type(TXT) addresses:
 [ [ 'MS=ms43057904' ],
  [ 'globalsign-domain-verification=aei6eSS-1p0PqmZ3x4jXFoJt_7l6MenGY6u2FV45qG' ],
  [ 'v=spf1 include:_spf.google.com include:amazonses.com ip4:199.83.44.0/22 ip4:209.204.146.20 ip4:162.42.207.20 ip4:208.76.31.37  ip4:162.42.214.212 include:spf.mandrillapp.com -all' ] ]


Type(SRV):
 { Error: querySrv ENODATA oreilly.com
    at errnoException (dns.js:28:10)
    at QueryReqWrap.onresolve [as oncomplete] (dns.js:216:19)
  code: 'ENODATA',
  errno: 'ENODATA',
  syscall: 'querySrv',
  hostname: 'oreilly.com' }

Type(PTR):
 { Error: queryPtr ENODATA oreilly.com
    at errnoException (dns.js:28:10)
    at QueryReqWrap.onresolve [as oncomplete] (dns.js:216:19)
  code: 'ENODATA',
  errno: 'ENODATA',
  syscall: 'queryPtr',
  hostname: 'oreilly.com' }

Type(NS) addresses:
 [ 'a4-64.akam.net',
  'a1-225.akam.net',
  'a13-64.akam.net',
  'a16-65.akam.net',
  'a20-66.akam.net',
  'a3-67.akam.net' ]


Type(SOA) addresses:
 { nsname: 'a1-225.akam.net',
  hostmaster: 'nic-tc.oreilly.com',
  serial: 2016052325,
  refresh: 600,
  retry: 1800,
  expire: 5184000,
  minttl: 3600 }


Type(CNAME):
 { Error: queryCname ENODATA oreilly.com
    at errnoException (dns.js:28:10)
    at QueryReqWrap.onresolve [as oncomplete] (dns.js:216:19)
  code: 'ENODATA',
  errno: 'ENODATA',
  syscall: 'queryCname',
  hostname: 'oreilly.com' }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment