cleanup
This commit is contained in:
parent
4ecb1b679c
commit
f3a3c477a5
90
README.md
90
README.md
|
@ -1,3 +1,87 @@
|
|||
dns-lint
|
||||
========
|
||||
|
||||
Fast, lightweight, **pure JavaScript** (ES5.1) implementation for DNS / mDNS.
|
||||
|
||||
Works great in **Web Browsers** and in node.js!
|
||||
|
||||
Details error checking makes it great for
|
||||
|
||||
* capture
|
||||
* packing (JSON to DNS)
|
||||
* parsing (DNS to JSON)
|
||||
* linting (finding errors in packets)
|
||||
* debugging
|
||||
|
||||
**No external dependencies** for modern browsers. Uses `DataView`, `Uint8Array`, `Uint16Array`, and `ArrayBuffer`
|
||||
|
||||
Similar API to `dns.js` and `native-dns-packet`.
|
||||
|
||||
Install
|
||||
-------
|
||||
|
||||
```
|
||||
npm install git+https://git@git.daplie.com:Daplie/dns-lint
|
||||
```
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
**CLI**
|
||||
|
||||
You can work directly from `node_modules/dns-lint`:
|
||||
|
||||
```
|
||||
pushd node_modules/dns-lint/
|
||||
```
|
||||
|
||||
Capture mDNS broadcast packets
|
||||
|
||||
```
|
||||
# example
|
||||
# node bin/mdns-capture.js <file-prefix>
|
||||
node bin/mdns-capture.js mdns-test
|
||||
```
|
||||
|
||||
```
|
||||
# in another terminal
|
||||
dig @224.0.0.251 -p 5353 -t PTR _services._dns-sd._udp.local
|
||||
```
|
||||
|
||||
Parsing a saved packet
|
||||
|
||||
```
|
||||
# example
|
||||
# node bin/dns-parse.js </path/to/packet.dns.bin>
|
||||
node bin/dns-parse.js samples/a-0.mdns.bin
|
||||
```
|
||||
|
||||
**Library**
|
||||
|
||||
* `packet = dnsjs.unpack(arrayBuffer)`
|
||||
* `packet = dnsjs.unpackRdatas(arrayBuffer, packet)`
|
||||
* `packet.answers[0].data = dnsjs.unpackRdatas(arrayBuffer, packet, packet.answers[0])`
|
||||
|
||||
node.js:
|
||||
```
|
||||
var nodeBuffer = fs.readFileSync('./samples/a-0.mdns.bin');
|
||||
var arrayBuffer = nodeBuffer.buffer;
|
||||
|
||||
var dnsjs = require('dns-lint');
|
||||
var packet = dnsjs.unpack(arrayBuffer);
|
||||
|
||||
console.log(packet);
|
||||
```
|
||||
|
||||
Browser:
|
||||
```
|
||||
var arrayBuffer = new Uint8Array.from([ /* bytes */ ]).buffer;
|
||||
|
||||
var packet = pdns.unpack(arrayBuffer);
|
||||
|
||||
console.log(packet);
|
||||
```
|
||||
|
||||
mDNS Documentation
|
||||
====
|
||||
|
||||
|
@ -69,7 +153,7 @@ which is located in the node.js buffer module. The API is [here](https://nodejs.
|
|||
However, the error we are working with will most likely be dealt with by parsing through the binary
|
||||
and putting it in a format that is acceptable to a custom buffer, since the current buffer.js does doesn't seem to do the trick.
|
||||
|
||||
Using
|
||||
Using
|
||||
|
||||
```javascript
|
||||
function pad(str, len, ch) {
|
||||
|
@ -170,7 +254,7 @@ function parseFlags(val, packet) {
|
|||
}
|
||||
```
|
||||
|
||||
One effective way to check is to create a dns packet, pass it to
|
||||
One effective way to check is to create a dns packet, pass it to
|
||||
a custom packer and parser function and compare the input and output:
|
||||
|
||||
```javascript
|
||||
|
@ -257,6 +341,6 @@ socket.on('message', function (message, rinfo) {
|
|||
|
||||
|
||||
|
||||
DNS sec: security
|
||||
DNS sec: security
|
||||
puts a signature on a DNS packet and imprints a signature so that the sender of
|
||||
the packet is confirmed
|
||||
|
|
|
@ -25,11 +25,13 @@ handlers.onError = function (err) {
|
|||
};
|
||||
handlers.onMessage = function (buffer) {
|
||||
var path = require('path');
|
||||
var name = type + '-' + count + '.mdns.bin';
|
||||
var filename = type + '-' + count + '.mdns.bin';
|
||||
var fullpath = path.join('samples', filename);
|
||||
|
||||
count += 1;
|
||||
|
||||
fs.writeFileAsync(path.join('samples', name), buffer).then(function () {
|
||||
console.log('wrote ' + buffer.length + ' bytes to ' + name);
|
||||
fs.writeFileAsync(fullpath, buffer).then(function () {
|
||||
console.log('wrote ' + buffer.length + ' bytes to ' + fullpath);
|
||||
});
|
||||
};
|
||||
handlers.onListening = function () {
|
||||
|
|
Loading…
Reference in New Issue