2017-10-02 18:45:33 +00:00
|
|
|
digd.js
|
|
|
|
=======
|
|
|
|
|
|
|
|
| [dns-suite](https://git.daplie.com/Daplie/dns-suite)
|
|
|
|
| [dig.js](https://git.daplie.com/Daplie/dig.js)
|
|
|
|
| **digd.js**
|
|
|
|
|
|
|
|
A lightweight DNS / mDNS daemon (server) for creating and capturing DNS and mDNS
|
|
|
|
query and response packets to disk as binary and/or JSON.
|
|
|
|
Options are similar to the Unix dig command.
|
|
|
|
|
|
|
|
Install
|
|
|
|
-------
|
|
|
|
|
|
|
|
### with git
|
|
|
|
|
|
|
|
```bash
|
|
|
|
# Install the latest of v1.x
|
|
|
|
npm install -g 'git+https://git@git.daplie.com/Daplie/digd.js.git#v1'
|
|
|
|
```
|
|
|
|
|
|
|
|
```bash
|
|
|
|
# Install exactly v1.0.0
|
|
|
|
npm install -g 'git+https://git@git.daplie.com/Daplie/digd.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, *dictator*net
|
|
|
|
(as we like to call it here at Daplie Labs), if that's how you roll:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
npm install -g digd.js
|
|
|
|
```
|
|
|
|
|
|
|
|
Usage
|
|
|
|
-----
|
|
|
|
|
|
|
|
```bash
|
|
|
|
digd.js --input <path/to/file.json>
|
|
|
|
```
|
|
|
|
|
|
|
|
**Example**:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
digd.js --input ./examples/example.com.json
|
|
|
|
```
|
|
|
|
|
2017-10-06 21:54:00 +00:00
|
|
|
### Testing
|
|
|
|
|
|
|
|
```bash
|
|
|
|
# unix dig
|
|
|
|
dig @localhost example.com
|
|
|
|
|
|
|
|
# dns-suite's dig.js
|
|
|
|
dig.js @localhost example.com
|
|
|
|
|
|
|
|
# unix netcat
|
|
|
|
netcat -u 127.0.0.1 53 < ./samples/example.com.a.query.bin
|
|
|
|
```
|
|
|
|
|
2017-10-02 18:45:33 +00:00
|
|
|
Options
|
|
|
|
-------
|
|
|
|
|
|
|
|
```
|
|
|
|
--output <path/to/file> write query and response(s) to disk with this path prefix (ex: ./samples/dns)
|
|
|
|
--input <path/to/file> input file to use for authoritative responses (ex: ./samples/zones.json)
|
|
|
|
|
|
|
|
--mdns Use mDNS port (5353) and nameserver address (224.0.0.251)
|
|
|
|
|
|
|
|
-p <port> default 53 (mdns default: 5353) (listener is random for DNS and 5353 for mDNS)
|
|
|
|
--nameserver <ns> alias of @<nameserver>
|
|
|
|
--timeout <ms> alias of +time=<seconds>, but in milliseconds
|
|
|
|
|
|
|
|
@<nameserver> specify the nameserver to use for recursive DNS resolutions (defaults to system defaults)
|
|
|
|
+time=<seconds> Sets the timeout for a query in seconds.
|
|
|
|
+norecurse Set `ra` flag to 0. Do not perform recursion.
|
|
|
|
+aaonly Set `aa` flag to 1. Do not respond with non-authoritative responses.
|
|
|
|
|
|
|
|
--debug verbose output
|
|
|
|
```
|
2017-10-02 23:13:57 +00:00
|
|
|
|
|
|
|
Other Resources
|
|
|
|
---------------
|
|
|
|
|
|
|
|
You may also be interested in Unbound (https://unboundtest.com), which is an entirely different project by someone else
|
|
|
|
which is much more complete, written in go, and may be very useful for debugging and linting.
|