starting dns record type parsers
This commit is contained in:
parent
90e8ab6f0b
commit
d04ea1b172
|
@ -17,7 +17,6 @@ exports.DNS_RDATA_PARSE = function (ab, packet, record) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!record.typeName) {
|
if (!record.typeName) {
|
||||||
throw new Error("Support for DNS Type " + record.type.toString(16) + "(" + record.type + ")"
|
throw new Error("Support for DNS Type " + record.type.toString(16) + "(" + record.type + ")"
|
||||||
+ " is not implemented yet. Open an issue if you actually need support"
|
+ " is not implemented yet. Open an issue if you actually need support"
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
(function (exports) {
|
(function (exports) {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
// An 'A' record is a 32-bit value representing the IP address
|
||||||
|
|
||||||
exports.DNS_TYPE_A = function (rdata) {
|
exports.DNS_TYPE_A = function (rdata) {
|
||||||
var ui8 = new Uint8Array(rdata);
|
var ui8 = new Uint8Array(rdata);
|
||||||
|
|
||||||
// i.e. 127.0.0.1
|
// i.e. 127.0.0.1
|
||||||
|
|
||||||
return ui8[0] + '.' + ui8[1] + '.' + ui8[2] + '.' + ui8[3];
|
return ui8[0] + '.' + ui8[1] + '.' + ui8[2] + '.' + ui8[3];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
(function (exports) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
// Value: IP Address
|
||||||
|
// Meaning:Use: 16 octets represting the IP address
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
exports.DNS_TYPE_AAAA = function (rdata) {
|
||||||
|
console.log('*****************************************');
|
||||||
|
|
||||||
|
// // var rrTokens = rdata.trim().split(/\s+/g);
|
||||||
|
// // var len = rrTokens.length;
|
||||||
|
// // var result = {
|
||||||
|
// // name: rrTokens[0],
|
||||||
|
// // ip: rrTokens[len-1]
|
||||||
|
// // };
|
||||||
|
|
||||||
|
|
||||||
|
// // if(!isNaN(rrTokens[1])) result.ttl = parseInt(rrTokens[1], 10);
|
||||||
|
// // return result;
|
||||||
|
// console.log(rdata.length.toString());
|
||||||
|
|
||||||
|
// var ui8 = new Uint8Array(rdata);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
}('undefined' !== typeof window ? window : exports));
|
|
@ -0,0 +1,12 @@
|
||||||
|
(function (exports) {
|
||||||
|
'use strict';
|
||||||
|
// TODO. Not yet implemented
|
||||||
|
|
||||||
|
// Meaning:Use: Requests ANY resource record (typicall wants SOA,
|
||||||
|
// MX, NS, and MX)
|
||||||
|
|
||||||
|
exports.DNS_TYPE_ANY = function (rdata) {
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
}('undefined' !== typeof window ? window : exports));
|
|
@ -0,0 +1,19 @@
|
||||||
|
(function (exports) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
// TODO. Not yet implemented
|
||||||
|
|
||||||
|
// A CNAME reocord maps a single alias or nickname to the real or
|
||||||
|
// Canonical name which may lie outside the current zone.
|
||||||
|
// Canonical simply means the expected or real name.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
exports.DNS_TYPE_CNAME = function (rdata) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}('undefined' !== typeof window ? window : exports));
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
(function (exports) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
// TODO. Not yet implemented
|
||||||
|
|
||||||
|
// Value: Preference
|
||||||
|
// Meaning/Use: Unsigned 16-bit integer
|
||||||
|
//-------------------------------------
|
||||||
|
// Value: Mail Exchanger
|
||||||
|
// Meaning/Use: The name host name that provides the service.
|
||||||
|
// May be a label, pointer or any combination
|
||||||
|
|
||||||
|
|
||||||
|
exports.DNS_TYPE_MX = function (rdata) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}('undefined' !== typeof window ? window : exports));
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
(function (exports) {
|
||||||
|
'use strict';
|
||||||
|
// Comes in variable lengths. It is the name of the primary Master for the Domain.
|
||||||
|
// For example 'ns1.example.com'
|
||||||
|
// It may be a label, pointer or any combination
|
||||||
|
|
||||||
|
|
||||||
|
exports.DNS_TYPE_NS = function (rdata) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}('undefined' !== typeof window ? window : exports));
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
(function (exports) {
|
||||||
|
'use strict';
|
||||||
|
// TODO. Not yet implemented
|
||||||
|
|
||||||
|
// Pointer records are the opposite of A and AAAA and are
|
||||||
|
// used in Reverse Map zone files to map an IP address (IPv4 or IPv6)
|
||||||
|
// to a host name.
|
||||||
|
|
||||||
|
// FORMAT:
|
||||||
|
// ame ttl class rr name
|
||||||
|
// 15 IN PTR www.example.com.
|
||||||
|
|
||||||
|
exports.DNS_TYPE_PTR = function (rdata) {
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
}('undefined' !== typeof window ? window : exports));
|
|
@ -0,0 +1,13 @@
|
||||||
|
(function (exports) {
|
||||||
|
'use strict';
|
||||||
|
// TODO. Not yet implemented
|
||||||
|
|
||||||
|
// SRV identifies the host(s) that will support a particular service. It
|
||||||
|
// is a general purpose RR to discover any service.
|
||||||
|
|
||||||
|
|
||||||
|
exports.DNS_TYPE_SRV = function (rdata) {
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
}('undefined' !== typeof window ? window : exports));
|
|
@ -159,6 +159,9 @@ pdns.unpack = function (ab) {
|
||||||
q.className = classes[q.class];
|
q.className = classes[q.class];
|
||||||
q.typeName = types[q.type];
|
q.typeName = types[q.type];
|
||||||
|
|
||||||
|
console.log('*********************');
|
||||||
|
console.log(q.typeName);
|
||||||
|
|
||||||
return q;
|
return q;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue