update docs

This commit is contained in:
AJ ONeal 2017-02-23 18:09:21 -07:00
parent de648a3883
commit a408f97537
2 changed files with 35 additions and 20 deletions

View File

@ -77,6 +77,9 @@ npm test
Usage Usage
----- -----
* CLI
* API
**CLI** **CLI**
You can work directly from `node_modules/dns-suite`: You can work directly from `node_modules/dns-suite`:
@ -85,19 +88,6 @@ You can work directly from `node_modules/dns-suite`:
pushd node_modules/dns-suite/ pushd node_modules/dns-suite/
``` ```
Capture mDNS broadcast packets
```bash
# example
# node bin/mdns-capture.js <file-prefix>
node bin/mdns-capture.js mdns-test
```
```bash
# in another terminal
dig @224.0.0.251 -p 5353 -t PTR _services._dns-sd._udp.local
```
Parsing a saved packet Parsing a saved packet
```bash ```bash
@ -112,28 +102,49 @@ should be.
**Library** **Library**
* `packet = dnsjs.unpack(arrayBuffer)` * `DNSPacket.parse(nodeOrArrayBuffer)` returns json (as shown above)
* `packet = dnsjs.unpackRdatas(arrayBuffer, packet)` * `DNSPacket.pack(packet)` returns ArrayBuffer (browser and node)
* `packet.answers[0].data = dnsjs.unpackRdatas(arrayBuffer, packet, packet.answers[0])` * `DNSPacket.write(packet)` returns NodeBuffer (node only)
node.js: node.js:
```js ```js
var nodeBuffer = fs.readFileSync('./samples/a-0.mdns.bin'); var nodeBuffer = fs.readFileSync('./samples/a-0.mdns.bin');
var arrayBuffer = nodeBuffer.buffer; var arrayBuffer = nodeBuffer.buffer;
var dnsjs = require('dns-suite'); var DNSPacket = require('dns-suite').DNSPacket;
var packet = dnsjs.unpack(arrayBuffer); var packet = DNSPacket.parse(arrayBuffer);
var ab = DNSPacket.pack(packet);
console.log(packet); console.log(packet);
console.log(new Uint8Array(ab));
``` ```
Browser: Browser:
```js ```js
var arrayBuffer = new Uint8Array.from([ /* bytes */ ]).buffer; var arrayBuffer = new Uint8Array.from([ /* bytes */ ]).buffer;
var packet = pdns.unpack(arrayBuffer); var packet = DNSPacket.parse(arrayBuffer);
var ab = DNSPacket.pack(packet);
console.log(packet); console.log(packet);
console.log(new Uint8Array(ab));
```
Capturing Packets
-----
We have a command line tool for that! See [dig.js](https://git.daplie.com/Daplie/dig.js).
```
# Install
npm install -g 'git+https://git@git.daplie.com/Daplie/dig.js.git'
# Use with DNS
dig.js A daplie.com --output .
# Use with mDNS
dig.js --mdns PTR _services._dns-sd._udp.local --output .
``` ```
Contributing and Development Contributing and Development

6
dns.js
View File

@ -8,7 +8,11 @@ var Packer = (exports.DNS_PACKER || require('./dns.packer.js').DNS_PACKER);
exports.DNSPacket = { exports.DNSPacket = {
parse: function (nb) { parse: function (nb) {
// backwards compat with node buffer // backwards compat with node buffer
var ab = nb.buffer || nb; var ab = nb;
if (nb.buffer) {
// TODO pass byteOffsets to unpacker
ab = nb.buffer.slice(nb.byteOffset, nb.byteOffset + nb.byteLength);
}
var packet = Parser.unpack(ab); var packet = Parser.unpack(ab);
function tryParseRdata(record) { function tryParseRdata(record) {