Create and capture DNS and mDNS query and response packets to disk as binary and/or JSON. Options are similar to the Unix dig command.
Go to file
AJ ONeal 76fee917ea use lastIndexOf 2017-10-02 17:06:15 -06:00
bin use lastIndexOf 2017-10-02 17:06:15 -06:00
.gitignore setup query 2017-02-17 19:07:02 -07:00
.jshintrc add .jshintrc 2017-09-15 18:43:18 -06:00
README.md check dns0x20 support by default 2017-10-02 16:43:58 -06:00
common.js WIP dns server 2017-09-25 18:14:27 -06:00
dns-request.js factor out printing of header and query 2017-09-20 13:27:53 -06:00
merge-up.sh update branches from least to greatest 2017-02-25 13:19:00 -07:00
package.json v1.3.1 2017-10-02 16:56:39 -06:00

README.md

dig.js

| dns-suite | dig.js | digd.js |

Create and capture DNS and mDNS query and response packets to disk as binary and/or JSON. Options are similar to the Unix dig command. Supports dns0x20 security checking.

Install

with git

# Install the latest of v1.x
npm install -g 'git+https://git@git.daplie.com/Daplie/dig.js.git#v1'
# Install exactly v1.0.0
npm install -g 'git+https://git@git.daplie.com/Daplie/dig.js.git#v1.0.0'

without git

Don't have git? Well, you can also bow down to the gods of the centralized, monopolized, concentrated, dictatornet (as we like to call it here at Daplie Labs), if that's how you roll:

npm install -g dig.js

Usage

dig.js [TYPE] <domainname>

Example:

dig.js daplie.com

mDNS Browser Example

This is pretty much an mDNS browser

dig.js --mdns _services._dns-sd._udp.local

Really the --mdns option is just an alias for setting all of these options as the default:

dig.js -p 5353 @224.0.0.251 PTR _services._dns-sd._udp.local +time=3

Moar Examples

dig.js A daplie.com

dig.js @8.8.8.8 A daplie.com

Options

--output <path/to/file>     write query and response(s) to disk with this path prefix (ex: ./samples/dns)

--mdns                      Use mDNS port and nameserver address, and listen for multiple packets

-t <type> (superfluous)     default ANY (mdns default: PTR)
-c <class>                  default IN
-p <port>                   default 53 (mdns default: 5353) (listener is random for DNS and 5353 for mDNS)
-q <query> (superfluous)    required (ex: daplie.com)
--nameserver <ns>           alias of @<nameserver>
--timeout <ms>              alias of +time=<seconds>, but in milliseconds

@<nameserver>               specify the nameserver to use for DNS resolution (defaults to system defaults)
+time=<seconds>             Sets the timeout for a query in seconds.
+norecurse                  Set `rd` flag to 0. Do not request recursion
+aaonly                     Set `aa` flag to 1.

--norecase         					Disable dns0x20 security checking (mixed casing). See https://dyn.com/blog/use-of-bit-0x20-in-dns-labels/
--recase           					Print the dns0x20 casing as-is rather than converting it back to lowercase. This is the default when explicitly using mixed case.

--debug                     verbose output