Skip to content

Use dig command (domain information grope) for DNS queries in node

License

Notifications You must be signed in to change notification settings

StephanGeorg/node-dig-dns

Folders and files

NameName
Last commit message
Last commit date

Latest commit

6cdbb2f · Sep 21, 2021

History

59 Commits
Aug 13, 2021
Aug 13, 2021
Aug 13, 2021
Oct 8, 2020
Aug 13, 2021
Oct 8, 2020
Oct 8, 2020
Aug 13, 2021
Oct 10, 2017
Sep 21, 2021
Sep 21, 2021

Repository files navigation

node-dig-dns npm version

Using native node dns to query complex DNS is a hustle. This is a simple wrapper for the unix/linux/macos dig command (domain information grope). Output is parsed to JSON.

Install

npm i node-dig-dns -S

Usage

dig([args], (options))

You can add all args from dig to the args array.

Examples

dig(['google.com', 'ANY'])
  .then((result) => {
    console.log(result)
  })
  .catch((err) => {
    console.log('Error:', err);
  });

Set custom DNS server:

dig(['@8.8.8.4','google.com', 'ANY'])
  .then((result) => {
    console.log(result)
  })
  .catch((err) => {
    console.log('Error:', err);
  });

Options

Optional parameters:

  • raw: Get the raw output as string. If +short option, raw output is default
  • dig: Manually set the dig command (/my/custum/path/to/dig)

Result

The dig result is parsed and return in JSON:

{ question: [ [ ';google.com.', 'IN', 'ANY' ] ],
  answer: 
   [ { domain: 'google.com.',
       type: 'A',
       ttl: '268',
       class: 'IN',
       value: '216.58.211.110' },
     { domain: 'google.com.',
       type: 'AAAA',
       ttl: '268',
       class: 'IN',
       value: '2a00:1450:400e:809::200e' },
     { domain: 'google.com.',
       type: 'MX',
       ttl: '568',
       class: 'IN',
       value: '30 alt2.aspmx.l.google.com.' },
       
       ...
       
    ],         
  time: 41,
  server: '8.8.8.8#53(8.8.8.8)',
  datetime: 'Mon Oct  9 23:56:37 2017',
  size: 373 }