Zum Hauptinhalt springen
claw
am
tools
Werkzeuge
Dokumente
Daoark
EN
Startseite
Startseite
/
Netzwerkwerkzeuge
›
/g,'>'); } function formatWhoisRaw(domain, d) { var raw = ''; raw += 'Domain Name: ' + domain.toUpperCase() + '\r\n'; raw += 'Registry Domain ID: 2138514_DOMAIN_COM-VRSN\r\n'; raw += 'Registrar WHOIS Server: whois.markmonitor.com\r\n'; raw += 'Registrar URL: http://www.markmonitor.com\r\n'; raw += 'Updated Date: ' + d.updated + 'T09:00:00Z\r\n'; raw += 'Creation Date: ' + d.registered + 'T04:00:00Z\r\n'; raw += 'Registry Expiry Date: ' + d.expires + 'T04:00:00Z\r\n'; raw += 'Registrar: ' + d.registrar + '\r\n'; raw += 'Registrar IANA ID: 292\r\n'; raw += 'Registrar Abuse Contact Email: abusecomplaints@markmonitor.com\r\n'; raw += 'Registrar Abuse Contact Phone: +1.2086851750\r\n'; raw += 'Domain Status: ' + d.status.map(function(s){return 'https://icann.org/epp#'+s;}).join('\r\nDomain Status: ') + '\r\n'; raw += 'Registrant Organization: ' + d.registrant + '\r\n'; raw += 'Registrant Country: ' + d.country + '\r\n'; d.nameservers.forEach(function(ns){ raw += 'Name Server: ' + ns.toUpperCase() + '\r\n'; }); raw += 'DNSSEC: ' + d.dnssec + '\r\n'; return raw; } function parseWhois(raw) { var parsed = {}; var m; m = raw.match(/Domain Name:\s*(\S+)/i); if (m) parsed.domain = m[1]; m = raw.match(/Registrar:\s*(.+)/i); if (m) parsed.registrar = m[1].trim(); m = raw.match(/Creation Date:\s*(.+)/i); if (m) parsed.registered = m[1].trim().split('T')[0]; m = raw.match(/Registry Expiry Date:\s*(.+)/i); if (m) parsed.expires = m[1].trim().split('T')[0]; m = raw.match(/Updated Date:\s*(.+)/i); if (m) parsed.updated = m[1].trim().split('T')[0]; m = raw.match(/Registrant Organization:\s*(.+)/i); if (m) parsed.registrant = m[1].trim(); m = raw.match(/Registrant Country:\s*(\S+)/i); if (m) parsed.country = m[1]; m = raw.match(/DNSSEC:\s*(\S+)/i); if (m) parsed.dnssec = m[1]; parsed.status = []; var statusRe = /Domain Status:\s*([^\r\n]+)/gi; while ((m = statusRe.exec(raw)) !== null) { var s = m[1].split('https://')[0].trim(); if (s) parsed.status.push(s); } parsed.nameservers = []; var nsRe = /Name Server:\s*(\S+)/gi; while ((m = nsRe.exec(raw)) !== null) { parsed.nameservers.push(m[1]); } return parsed; } document.getElementById('f').addEventListener('submit', function(e) { e.preventDefault(); errorMsg.textContent = ''; try { var raw = document.getElementById('domain').value.trim().toLowerCase(); if (!raw) { errorMsg.textContent = '请输入域名'; return; } raw = raw.replace(/^https?:\/\//, '').replace(/\/.*$/, ''); var d = WHOIS[raw]; if (!d) { errorMsg.textContent = '暂未收录该域名 (本工具仅内置 20+ 热门域名静态表,可通过 whois.iana.org 查询其他域名)'; resultArea.classList.remove('show'); return; } var whoisText = formatWhoisRaw(raw, d); var parsed = parseWhois(whoisText); var statusBadges = parsed.status.map(function(s){ var cls = s.indexOf('Prohibited') >= 0 ? 'badge' : 'badge warn'; return '
' + escape(s) + '
'; }).join(' '); var nsList = parsed.nameservers.map(function(n){ return '
' + escape(n) + '
'; }).join(' '); var today = new Date(); var expDate = new Date(parsed.expires); var daysLeft = Math.floor((expDate - today) / (1000*60*60*24)); var yearsLeft = (daysLeft / 365).toFixed(2); var html = ''; html += '
'; html += '
' + escape(parsed.domain || raw) + '
'; html += '
距离到期还有
' + daysLeft + '
天 (约 ' + yearsLeft + ' 年)
'; html += '
'; html += '
'; html += '
域名
' + escape(parsed.domain || raw) + '
'; html += '
注册商
' + escape(parsed.registrar) + '
'; html += '
注册人/组织
' + escape(parsed.registrant) + '
'; html += '
国家
' + escape(parsed.country) + '
'; html += '
注册日期
' + escape(parsed.registered) + '
'; html += '
到期日期
' + escape(parsed.expires) + '
'; html += '
更新日期
' + escape(parsed.updated) + '
'; html += '
状态
' + statusBadges + '
'; html += '
DNS 服务器 (' + parsed.nameservers.length + ')
' + nsList + '
'; html += '
DNSSEC
' + escape(parsed.dnssec) + '
'; html += '
'; html += '
原始 Whois 响应 (伪)
'; html += '
' + escape(whoisText) + '
'; resultMeta.textContent = '查询域名: ' + raw + ' · 来源: 内置静态表 (伪响应)'; resultContent.innerHTML = html; resultArea.classList.add('show'); } catch (err) { errorMsg.textContent = '错误: ' + err.message; resultArea.classList.remove('show'); } }); })();