UNPKG

zonefile-parser

Version:
68 lines (51 loc) 1.64 kB
# zonefile-parser A DNS zonefile parser module with no runtime dependencies, generated from the [PEG.js](https://github.com/pegjs/pegjs) grammar https://github.com/tableflip/zonefile-pegjs Handles **multi-line SOA and TXT records**, as well as **SRV, MX, CNAME, NS, AAAA, A** and friends. ## Install ```sh npm install zonefile-parser ``` ## Usage The parser comes in two flavors: **fast.js**, the default module exported: ```js var parser = require('zonefile-parser') parser.parse('tableflip.io. 21599 IN A 178.62.82.182') // { origin: null, ttl: null, records:[ { name:'tableflip.io.', ttl: '21599', type:'A', data: '178.62.82.182' } ] } ``` and **small.js** in case you're browserifying and want to shave a few bytes: ```js var parser = require('zonefile-parser/small') parser.parse('tableflip.io. 21599 IN A 178.62.82.182') // { origin: null, ttl: null, records:[ { name:'tableflip.io.', ttl: '21599', type:'A', data: '178.62.82.182' } ] } ``` ## Command line tool Install it globally ```sh npm install -g zonefile-parser ``` and use it from your shell as `zonefile` to convert a zonefile to JSON on stdout: ```sh $ zonefile ../zonefile-pegjs/test/example.zone { "origin": "example.org.", "ttl": "2d", "records": [ { "name": "@", "ttl": null, "type": "SOA", "data": { "nameServer": "ns1.example.org.", "email": "hostmaster.example.org.", "serial": "2003080800", "refresh": "12h", "retry": "15m", "expiry": "3w", "minimum": "3h" } } ] } ``` A [(╯°□°TABLEFLIP](https://tableflip.io) side project.