Skip to content

Commit

Permalink
fix(dnshack): Don't try resolving ip addresses
Browse files Browse the repository at this point in the history
  • Loading branch information
Hypfer committed Feb 20, 2021
1 parent f7eb451 commit b8c456d
Showing 1 changed file with 28 additions and 10 deletions.
38 changes: 28 additions & 10 deletions lib/DnsHack.js
Original file line number Diff line number Diff line change
Expand Up @@ -71,21 +71,33 @@ class DnsHack {
) {
Logger.trace("Intercepting dns.lookup call for", hostname);

dns.resolve4(hostname, (err, addresses) => {
if (err && err.code === "ENOTFOUND") {
dns.resolve6(hostname, (err, addresses) => {
if (err) {
if (typeof hostname === "string") {
const trimmedHostname = hostname.trim();

if (trimmedHostname.match(IPV4REGEX) !== null) {
callback(null, trimmedHostname, 4);
} else if (trimmedHostname.match(IPV6REGEX) !== null) {
callback(null, trimmedHostname, 6);
} else {
dns.resolve4(hostname, (err, addresses) => {
if (err && err.code === "ENOTFOUND") {
dns.resolve6(hostname, (err, addresses) => {
if (err) {
callback(err);
} else {
callback(null, addresses[0], 6);
}
});
} else if (err) {
callback(err);
} else {
callback(null, addresses[0], 6);
callback(null, addresses[0], 4);
}
});
} else if (err) {
callback(err);
} else {
callback(null, addresses[0], 4);
}
});
} else {
callback(new Error("Invalid Hostname"));
}
} else {
return realLookup(hostname, options, callback);
}
Expand All @@ -109,4 +121,10 @@ class DnsHack {
}
}

//https://www.oreilly.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html
const IPV4REGEX = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;

//https://www.oreilly.com/library/view/regular-expressions-cookbook/9781449327453/ch08s17.html
const IPV6REGEX = /^(?:[A-F0-9]{1,4}:){7}[A-F0-9]{1,4}$/i;

module.exports = DnsHack;

0 comments on commit b8c456d

Please sign in to comment.