47 lines
2.1 KiB
JavaScript
47 lines
2.1 KiB
JavaScript
|
/*
|
||
|
Language: DNS Zone
|
||
|
Author: Tim Schumacher <tim@datenknoten.me>
|
||
|
Category: config
|
||
|
Website: https://en.wikipedia.org/wiki/Zone_file
|
||
|
*/
|
||
|
|
||
|
/** @type LanguageFn */
|
||
|
function dns(hljs) {
|
||
|
return {
|
||
|
name: 'DNS Zone',
|
||
|
aliases: [
|
||
|
'bind',
|
||
|
'zone'
|
||
|
],
|
||
|
keywords: {
|
||
|
keyword:
|
||
|
'IN A AAAA AFSDB APL CAA CDNSKEY CDS CERT CNAME DHCID DLV DNAME DNSKEY DS HIP IPSECKEY KEY KX ' +
|
||
|
'LOC MX NAPTR NS NSEC NSEC3 NSEC3PARAM PTR RRSIG RP SIG SOA SRV SSHFP TA TKEY TLSA TSIG TXT'
|
||
|
},
|
||
|
contains: [
|
||
|
hljs.COMMENT(';', '$', {
|
||
|
relevance: 0
|
||
|
}),
|
||
|
{
|
||
|
className: 'meta',
|
||
|
begin: /^\$(TTL|GENERATE|INCLUDE|ORIGIN)\b/
|
||
|
},
|
||
|
// IPv6
|
||
|
{
|
||
|
className: 'number',
|
||
|
begin: '((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))\\b'
|
||
|
},
|
||
|
// IPv4
|
||
|
{
|
||
|
className: 'number',
|
||
|
begin: '((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\b'
|
||
|
},
|
||
|
hljs.inherit(hljs.NUMBER_MODE, {
|
||
|
begin: /\b\d+[dhwm]?/
|
||
|
})
|
||
|
]
|
||
|
};
|
||
|
}
|
||
|
|
||
|
module.exports = dns;
|