Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bahamas10/node-dnsgen
Generate DNS files using json
https://github.com/bahamas10/node-dnsgen
Last synced: about 2 months ago
JSON representation
Generate DNS files using json
- Host: GitHub
- URL: https://github.com/bahamas10/node-dnsgen
- Owner: bahamas10
- Created: 2012-08-18T04:13:38.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2013-01-11T23:54:53.000Z (almost 12 years ago)
- Last Synced: 2024-04-14T00:50:17.849Z (8 months ago)
- Language: JavaScript
- Size: 111 KB
- Stars: 5
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
DNS Generator
=============Generate DNS files using json
Install
------Install the command line tool `dnsgen`
npm install -g dnsgen
Install locally to use as a module
npm install dnsgen
Usage
-----Command line
dnsgen bind reverse < example.json
As a module
``` js
var dnsgen = require('dnsgen');
```Example
-------### Command line tool
The command line tool reads json from stdin, and pipes the output to stdout
$ dnsgen bind < example.json
; Bind file for example.com (10.0.0.0/23)
@ IN SOA ns1.example.com. admin.example.com. (
2012081701 ; serial
28800 ; refresh
7200 ; retry
864000 ; expire
86400 ; ttl
)
example.com. IN NS ns1.example.com.
example.com. IN NS ns2.example.com.
gw IN A 10.0.0.1
zelda IN A 10.0.0.2 ; Testing Box
link IN A 10.0.0.3 ; Another box for testing
gw2 IN A 10.0.1.1You can also generate reverse lookup files
$ dnsgen bind reverse < example.json
; Bind file for example.com (10.0.0.0/23)
@ IN SOA ns1.example.com. admin.example.com. (
2012081701 ; serial
28800 ; refresh
7200 ; retry
864000 ; expire
86400 ; ttl
)
IN NS ns1.example.com.
IN NS ns2.example.com.
0.1 IN PTR gw.example.com.
0.2 IN PTR zelda.example.com. ; Testing Box
0.3 IN PTR link.example.com. ; Another box for testing
1.1 IN PTR gw2.example.com.Tiny dns is also cool
$ dnsgen tinydns < example.json
# tinydns file for example.com (10.0.0.0/23)
Zexample.com:ns1.example.com:admin.example.com:2012081701:28800:7200:864000
&example.com::ns1.example.com:86400
&example.com::ns2.example.com:86400
=gw:10.0.0.1
=zelda:10.0.0.2 # Testing Box
=link:10.0.0.3 # Another box for testing
=gw2:10.0.1.1### Node Module
The exports of dnsgen return a stream that you can pipe anywhere you want
``` js
var dnsgen = require('dnsgen'),
json = require('./example.json');// Generate forward lookup file
dnsgen.bind(json).pipe(process.stdout);// Generate reverse lookup file
dnsgen.bindReverse(json).pipe(process.stdout);// Generate tinydns config
dnsgen.tinydns(json).pipe(process.stdout);
```### example.json
``` json
{
"domain": "example.com",
"admin": "admin.example.com",
"time": {
"refresh": 28800,
"retry": 7200,
"expire": 864000,
"ttl": 86400
},
"ns": [
"ns1.example.com",
"ns2.example.com"
],
"netmask": "10.0.0.0/23",
"hosts": {
"10.0.0.1": "gw",
"10.0.0.2": {
"name": "zelda",
"comment": "Testing Box"
},
"10.0.0.3": {
"name": "link",
"comment": "Another box for testing"
},
"10.0.1.1": "gw2"
}
}
```Tests
-----npm test
Known Limitations
-----------------* This module only supports outputting files suitable for BIND and tiny DNS servers.
* Only A, NS and PTR records can be generatedLicense
-------MIT Licensed