forked from LittleChest/dns-packet
* Added Service Binding RR support (type 64) This is just using the exact same code as the HTTPS parser as they are formatted in the same manner.
108 lines
2.7 KiB
JavaScript
108 lines
2.7 KiB
JavaScript
'use strict'
|
|
|
|
exports.toString = function (type) {
|
|
switch (type) {
|
|
case 1: return 'A'
|
|
case 10: return 'NULL'
|
|
case 28: return 'AAAA'
|
|
case 18: return 'AFSDB'
|
|
case 42: return 'APL'
|
|
case 257: return 'CAA'
|
|
case 60: return 'CDNSKEY'
|
|
case 59: return 'CDS'
|
|
case 37: return 'CERT'
|
|
case 5: return 'CNAME'
|
|
case 49: return 'DHCID'
|
|
case 32769: return 'DLV'
|
|
case 39: return 'DNAME'
|
|
case 48: return 'DNSKEY'
|
|
case 43: return 'DS'
|
|
case 55: return 'HIP'
|
|
case 13: return 'HINFO'
|
|
case 45: return 'IPSECKEY'
|
|
case 25: return 'KEY'
|
|
case 36: return 'KX'
|
|
case 29: return 'LOC'
|
|
case 15: return 'MX'
|
|
case 35: return 'NAPTR'
|
|
case 2: return 'NS'
|
|
case 47: return 'NSEC'
|
|
case 50: return 'NSEC3'
|
|
case 51: return 'NSEC3PARAM'
|
|
case 12: return 'PTR'
|
|
case 46: return 'RRSIG'
|
|
case 17: return 'RP'
|
|
case 24: return 'SIG'
|
|
case 6: return 'SOA'
|
|
case 99: return 'SPF'
|
|
case 33: return 'SRV'
|
|
case 44: return 'SSHFP'
|
|
case 32768: return 'TA'
|
|
case 249: return 'TKEY'
|
|
case 52: return 'TLSA'
|
|
case 250: return 'TSIG'
|
|
case 16: return 'TXT'
|
|
case 252: return 'AXFR'
|
|
case 251: return 'IXFR'
|
|
case 41: return 'OPT'
|
|
case 64: return 'SVCB'
|
|
case 65: return 'HTTPS'
|
|
case 255: return 'ANY'
|
|
}
|
|
return 'UNKNOWN_' + type
|
|
}
|
|
|
|
exports.toType = function (name) {
|
|
switch (name.toUpperCase()) {
|
|
case 'A': return 1
|
|
case 'NULL': return 10
|
|
case 'AAAA': return 28
|
|
case 'AFSDB': return 18
|
|
case 'APL': return 42
|
|
case 'CAA': return 257
|
|
case 'CDNSKEY': return 60
|
|
case 'CDS': return 59
|
|
case 'CERT': return 37
|
|
case 'CNAME': return 5
|
|
case 'DHCID': return 49
|
|
case 'DLV': return 32769
|
|
case 'DNAME': return 39
|
|
case 'DNSKEY': return 48
|
|
case 'DS': return 43
|
|
case 'HIP': return 55
|
|
case 'HINFO': return 13
|
|
case 'IPSECKEY': return 45
|
|
case 'KEY': return 25
|
|
case 'KX': return 36
|
|
case 'LOC': return 29
|
|
case 'MX': return 15
|
|
case 'NAPTR': return 35
|
|
case 'NS': return 2
|
|
case 'NSEC': return 47
|
|
case 'NSEC3': return 50
|
|
case 'NSEC3PARAM': return 51
|
|
case 'PTR': return 12
|
|
case 'RRSIG': return 46
|
|
case 'RP': return 17
|
|
case 'SIG': return 24
|
|
case 'SOA': return 6
|
|
case 'SPF': return 99
|
|
case 'SRV': return 33
|
|
case 'SSHFP': return 44
|
|
case 'TA': return 32768
|
|
case 'TKEY': return 249
|
|
case 'TLSA': return 52
|
|
case 'TSIG': return 250
|
|
case 'TXT': return 16
|
|
case 'AXFR': return 252
|
|
case 'IXFR': return 251
|
|
case 'OPT': return 41
|
|
case 'SVCB': return 64
|
|
case 'HTTPS': return 65
|
|
case 'ANY': return 255
|
|
case '*': return 255
|
|
}
|
|
if (name.toUpperCase().startsWith('UNKNOWN_')) return parseInt(name.slice(8))
|
|
return 0
|
|
}
|