UNPKG

@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

40 lines (32 loc) 1.09 kB
export const STATUS_PATTERNS = [/Domain Status:\s*(.+?)(?:\n|$)/gi, /Status:\s*(.+?)(?:\n|$)/gi]; export const NAMESERVER_PATTERNS = [ /Name Server:\s*(.+?)(?:\n|$)/gi, /Nameserver:\s*(.+?)(?:\n|$)/gi, /nserver:\s*(.+?)(?:\n|$)/gi, ]; export function findStatusCodes(rawData: string): string[] { const statusCodes: string[] = []; for (const pattern of STATUS_PATTERNS) { let statusMatch: RegExpExecArray | null; while ((statusMatch = pattern.exec(rawData)) !== null) { const status = statusMatch[1].trim(); if (status && !statusCodes.includes(status)) { statusCodes.push(status); } } } return statusCodes; } export function findNameServers(rawData: string): string[] { const nameServers: string[] = []; for (const pattern of NAMESERVER_PATTERNS) { let nsMatch: RegExpExecArray | null; while ((nsMatch = pattern.exec(rawData)) !== null) { const server = nsMatch[1].trim().toLowerCase(); if (server && !nameServers.includes(server)) { nameServers.push(server); } } } return nameServers; }