@xyz/whois
Version:
A powerful TypeScript/JavaScript tool for comprehensive domain analysis, featuring detailed WHOIS data with registration dates, registrars, and domain status. Offers SSL certificate extraction (with PEM support), DNS records, and server details. Includes
38 lines (37 loc) • 1.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.NAMESERVER_PATTERNS = exports.STATUS_PATTERNS = void 0;
exports.findStatusCodes = findStatusCodes;
exports.findNameServers = findNameServers;
exports.STATUS_PATTERNS = [/Domain Status:\s*(.+?)(?:\n|$)/gi, /Status:\s*(.+?)(?:\n|$)/gi];
exports.NAMESERVER_PATTERNS = [
/Name Server:\s*(.+?)(?:\n|$)/gi,
/Nameserver:\s*(.+?)(?:\n|$)/gi,
/nserver:\s*(.+?)(?:\n|$)/gi,
];
function findStatusCodes(rawData) {
const statusCodes = [];
for (const pattern of exports.STATUS_PATTERNS) {
let statusMatch;
while ((statusMatch = pattern.exec(rawData)) !== null) {
const status = statusMatch[1].trim();
if (status && !statusCodes.includes(status)) {
statusCodes.push(status);
}
}
}
return statusCodes;
}
function findNameServers(rawData) {
const nameServers = [];
for (const pattern of exports.NAMESERVER_PATTERNS) {
let nsMatch;
while ((nsMatch = pattern.exec(rawData)) !== null) {
const server = nsMatch[1].trim().toLowerCase();
if (server && !nameServers.includes(server)) {
nameServers.push(server);
}
}
}
return nameServers;
}