我制作了一个伪 FNL 的 whois 服务器
起因是,我把 whois.rr.kg 这个域名抢了,然后打算写点什么…
成品展示:https://whois.rr.kg/
服务跑在 Serv00 上
源代码:
import express from "express";
import ejs from "ejs";
const app = express();
app.engine("ejstxt", ejs.renderFile);
app.set("view engine", "ejstxt");
app.use(express.static("public"));
app.get("/:domain", async (req, res) => {
const domain = req.params.domain;
const whoisServer = "https://domain.nodeloc.com/api/public/whois/";
const currentHost = req.get("host");
res.header("Content-Type", "text/plain; charset=utf-8");
try {
const resp = await fetch(whoisServer + domain);
const data = await resp.json();
if (data.error) {
return res.status(400).send(`Error: ${data.error}`);
}
res.render("template.ejstxt", {
data: data,
host: currentHost,
timestamp: new Date().toISOString(),
});
} catch (error) {
console.error(error);
res.status(500).send("Internal Server Error");
}
});
app.listen(3000, () => console.log("Server started"));
Domain Name: <%= data.full_domain || "N/A" %>
Registry Domain ID: NOT_APPLICABLE
Registrar WHOIS Server: <%= host %>
Registrar URL: https://domain.nodeloc.com
Updated Date: <%= data.registered_at || "N/A" %>
Creation Date: <%= data.registered_at || "N/A" %>
Registry Expiry Date: <%= data.expires_at || "N/A" %>
Registrar: Nodeloc Free Domain
Registrar IANA ID: Not Provided
Domain Status: <%= data.status || "inactive" %> (https://icann.org/epp#<%= data.status || "inactive" %>)
Registry Registrant ID: REDACTED_FOR_PRIVACY
Registrant Name: REDACTED_FOR_PRIVACY
Registrant Organization: REDACTED_FOR_PRIVACY
<% if (data.nameservers && data.nameservers.length > 0) { -%>
<% data.nameservers.forEach(ns => { -%>
Name Server: <%= ns %>
<% }); -%>
<% } else { -%>
Name Server: Not Provided
<% } -%>
DNSSEC: unsigned
---
### Additional System Metadata ###
Days Until Deletion: <%= data.days_until_deletion ?? "null" %>
Days Until Suspension: <%= data.days_until_suspension ?? "null" %>
First Failed At: <%= data.first_failed_at ?? "null" %>
Suspension Reason: <%= data.suspend_reason ?? "null" %>
Suspended At: <%= data.suspended_at ?? "null" %>
### Health & Scan Reports ###
<% if (data.scan) { -%>
Overall Health: <%= data.scan.overall_health || "N/A" %>
DNS Status: <%= data.scan.dns_status || "N/A" %>
HTTP Status: <%= data.scan.http_status || "N/A" %>
SSL Status: <%= data.scan.ssl_status || "N/A" %>
Safe Browsing: <%= data.scan.safe_browsing_status || "N/A" %>
VirusTotal: <%= data.scan.virustotal_status || "N/A" %>
Uptime: <%= data.scan.uptime_percentage ? data.scan.uptime_percentage.toFixed(2) + "%" : "N/A" %>
Last Scanned: <%= data.scan.last_scanned_at || "N/A" %>
<% } else { -%>
Scan Status: No scan data available
<% } -%>
>>> Last update of WHOIS database: <%= timestamp %> <<<
版权声明:本博客所有文章除特殊声明外,均采用 CC BY-NC 4.0 许可协议。转载请注明出处 Runoneall的博客!