whois-parsed
Version:
A wrapper for the fantastic whois module that parses whois data into consistent fields across multiple tlds
39 lines (34 loc) • 1.04 kB
JavaScript
var util = require('util'),
whois = require('whois-raw'),
parseRawData = require('./parse-raw-data.js');
var lookup = util.promisify(whois.lookup);
module.exports = {
lookup: async function(domain, options = {}) {
// Where possible don't follow the detailed results to improve efficiency
if (options && !options.hasOwnProperty('follow')) {
if (domain.endsWith('.org') ||
domain.endsWith('.net') ||
domain.endsWith('.com')) {
options['follow'] = 0
}
}
console.log('looking up whois for ' + domain);
var result = {};
try {
var rawData = await lookup(domain, options || {});
// console.log('DEBUG: raw data: ' + rawData)
if ( typeof rawData === 'object' ) {
result = rawData.map(function(data) {
data.data = parseRawData(data.data, domain);
return data;
});
} else {
result = {...result, ...parseRawData(rawData, domain)};
}
return result;
} catch(err){
console.log(err);
throw err;
}
}
};