このライブラリはゾーンファイル→JSON、JSON→ゾーンファイルに変換できる。
ということで、dns-zonefileを使い方を紹介する。
CLIで実行できるが、今回はimportして利用する方法をまとめる。
ゾーンファイルからJSONに変換する
// zonefile-to-json.js
import zonefile from 'dns-zonefile';
const file = `$ORIGIN example.com.
$TTL 3600
; A Records
@ IN A 127.0.0.1
www IN A 127.0.0.1
mail IN A 127.0.0.1
`;
const json = zonefile.parse(file);
// json
{
"$origin": "example.com.",
"$ttl": "3600",
"a": [
{
"name": "@",
"ip": "127.0.0.1"
},
{
"name": "www",
"ip": "127.0.0.1"
},
{
"name": "mail",
"ip": "127.0.0.1"
}
]
};
JSONからゾーンファイルに変換する
// json-to-zonefile.js
import zonefile from 'dns-zonefile';
const json = {
"$origin": "example.com.",
"$ttl": 3600,
"soa": {},
"a": [
{
"name": "@",
"ip": "127.0.0.1"
},
{
"name": "www",
"ip": "127.0.0.1"
},
{
"name": "mail",
"ip": "127.0.0.1"
}
]
};
const file = zonefile.generate(json);
// file
/*
; Zone: example.com.
; Exported (yyyy-mm-ddThh:mm:ss.sssZ): 2017-07-13T06:20:19.465Z
$ORIGIN example.com.
$TTL 3600
; SOA Record
@ IN SOA {mname}{rname}(
{serial} ;serial
{refresh} ;refresh
{retry} ;retry
{expire} ;expire
{minimum} ;minimum ttl
)
; NS Records
; MX Records
; A Records
@ IN A 127.0.0.1
www IN A 127.0.0.1
mail IN A 127.0.0.1
; AAAA Records
; CNAME Records
; PTR Records
; TXT Records
; SRV Records
; SPF Records
*/
説明するほどでもないが、parseとgenerateでゾーンファイル・JSONの相互変換ができる。
ただし、for...of文を使っているためIE11では動作しないので注意。
余談だが、私もコントリビュートしていたりするw(大した修正してないけど)
以上
written by @bc_rikko
0 件のコメント :
コメントを投稿