跳转到内容
Tutorial

WHOIS API:通过 RDAP 在一个 POST 中进行结构化域名查找

| 6 min read

通过一次 API 调用即可获取任何域的注册商、到期日期、名称服务器和状态代码。 来自 RDAP 的结构化 JSON; 没有文本解析。

Terminal window showing domain lookup results
Photo by Sai Kiran Anagani on Unsplash

您正在构建一个域监控工具。 您需要注册商、到期日期和名称服务器 适用于您投资组合中的每个域。 旧的 WHOIS 协议为您提供非结构化文本。 每个 注册商的格式不同。 解析它意味着编写脆弱的正则表达式,当 注册商更改其输出格式。

RDAP(注册数据访问协议)通过返回结构化 JSON 解决了​​这个问题。 但每个 TLD 有不同的 RDAP 服务器,您必须查询 IANA 引导注册表才能找到它。 然后 您仍然需要标准化响应,因为 RDAP 实施因注册表而异。

波托伊 /v1/whois 端点处理所有这些。 一个 POST 请求,一个 JSON 响应,每个 TLD。

终点

curl -X POST https://api.botoi.com/v1/whois \\
  -H "Content-Type: application/json" \\
  -d '{ "domain": "stripe.com" }'

回复:

{
  "success": true,
  "data": {
    "domain": "stripe.com",
    "registrar": "SafeNames Ltd.",
    "status": [
      "client delete prohibited",
      "client transfer prohibited",
      "client update prohibited",
      "server delete prohibited",
      "server transfer prohibited",
      "server update prohibited"
    ],
    "created": "1995-09-12T04:00:00Z",
    "updated": "2024-06-18T10:22:31Z",
    "expires": "2032-09-11T04:00:00Z",
    "nameservers": [
      "ns-cloud-d1.googledomains.com",
      "ns-cloud-d2.googledomains.com",
      "ns-cloud-d3.googledomains.com",
      "ns-cloud-d4.googledomains.com"
    ]
  }
}

六个字段涵盖了 WHOIS 所需的 90%:注册商名称、域名状态代码、 创建日期、上次更新、到期日期和名称服务器。 所有日期均为 ISO 8601。全部 名称服务器是小写的。 无需解析。

原始 WHOIS 文本与结构化 API 响应

以下是原始 WHOIS 协议为同一域返回的内容。 这是您从中获得的文本 一个 whois stripe.com 命令:

Domain Name: STRIPE.COM
Registry Domain ID: 609783_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.safenames.net
Registrar URL: http://www.safenames.net
Updated Date: 2024-06-18T10:22:31Z
Creation Date: 1995-09-12T04:00:00Z
Registry Expiry Date: 2032-09-11T04:00:00Z
Registrar: SafeNames Ltd.
Registrar IANA ID: 447
Registrar Abuse Contact Email: abuse@safenames.net
Registrar Abuse Contact Phone: +44.1onal234567
Domain Status: clientDeleteProhibited
Domain Status: clientTransferProhibited
Domain Status: clientUpdateProhibited
Domain Status: serverDeleteProhibited
Domain Status: serverTransferProhibited
Domain Status: serverUpdateProhibited
Name Server: NS-CLOUD-D1.GOOGLEDOMAINS.COM
Name Server: NS-CLOUD-D2.GOOGLEDOMAINS.COM
Name Server: NS-CLOUD-D3.GOOGLEDOMAINS.COM
Name Server: NS-CLOUD-D4.GOOGLEDOMAINS.COM
DNSSEC: unsigned
URL of the ICANN Whois Inaccuracy Complaint Form:
   https://www.icann.org/wicf/
>>> Last update of whois database: 2026-03-29T10:00:00Z <<<

这是一堵没有标准格式的文字墙。 字段名称、间距和顺序发生变化 注册商之间。 威瑞信以一种方式格式化日期。 Nominet 将它们格式化为另一种。 一些 注册商包括注册人的姓名和地址。 其他人根据 GDPR 编辑所有内容 隐私盾。

API 响应以可预测的结构为您提供相同的数据。 您访问 data.expires 而不是为“注册表到期日期:”编写正则表达式。 你迭代 data.nameservers 而不是扫描以“Name Server:”开头的行。

构建域名过期监视器

因为有人忘记续订而失去域名是昂贵且令人尴尬的。 这个 Node.js 脚本检查域列表并标记所有在 30 天内过期的域。 每天运行它 cron 作业或 GitHub Actions 计划的工作流程。

该脚本会迭代您的域列表,检查每个域,并收集过期的域 30天内。 这 sendAlert 函数发布到 Slack。 将其替换为 PagerDuty, 电子邮件或任何 Webhook 端点。

您可以通过几种方式扩展它:将结果存储在数据库中以跟踪到期趋势、添加 分层警报的 60 天和 90 天阈值,或交叉引用名称服务器来检测 未经授权的 DNS 更改。

了解域状态代码

status 响应中的数组告诉您注册表和 注册商允许该域。 以下是最常见代码的参考:

具有“禁止服务器传输”和“禁止服务器删除”的域具有注册表级别 锁。 这些比客户端级锁更强,因为只有注册表操作员可以删除 他们。 高价值域名,例如 stripe.comgoogle.com 两者都有 层。

如果您在域名状态中看到“待删除”或“赎回期”,请迅速采取行动。 域是 即将被释放或可以通过注册商付费恢复。

何时使用此端点

  • 域组合监控。 跟踪数百个域的到期日期。 在任何域名失效之前提醒您的团队。
  • 网络钓鱼调查。 检查可疑域名的注册时间。 网络钓鱼域名通常是在攻击前数小时或数天创建的。
  • 领先资格。 2003 年创建的域名表明已建立 公司。 上周注册的域名讲述了一个不同的故事。
  • DNS 更改检测。 将当前名称服务器与已知基线进行比较。 您未经授权的名称服务器更改可能意味着域劫持。
  • 合规和尽职调查。 在供应商期间验证域所有权详细信息 入职或并购尽职调查。 注册商和状态代码揭示了域名的 安全态势。

要点

  • POST /v1/whois 返回注册商、日期、状态代码和名称服务器 标准化 JSON。
  • 端点查询 RDAP 服务器,而不是旧版 WHOIS 文本协议。 您获得结构化数据 无需编写解析器。
  • 匿名访问的速度为每分钟 5 个请求,无需 API 密钥。 付费计划消除了这一限制。
  • 响应包括 expires ISO 8601 中的字段。用它来构建过期时间 监视器、警报管道或域仪表板。

FAQ

WHOIS 和 RDAP 之间有什么区别?
WHOIS 是 1982 年的遗留协议。它返回非结构化纯文本,在注册商之间没有标准格式。 RDAP(注册数据访问协议)是 IETF 标准化的替代协议,可返回结构化 JSON。 botoi /v1/whois 端点查询 RDAP 服务器并返回规范化的 JSON 响应。
WHOIS 查询 API 是免费的吗?
是的。 匿名访问不需要 API 密钥,每分钟允许 5 个请求,每天允许 100 个请求。 付费计划起价为 9 美元/月,费率限额更高。
API 支持哪些 TLD?
该 API 查询 RDAP 引导注册表,其中涵盖 .com、.net、.org、.io、.dev、.app、.co 和大多数 gTLD。 某些国家/地区代码 TLD (ccTLD) 的 RDAP 覆盖范围有限,可能会返回部分数据。
为什么响应中缺少所有者联系字段?
大多数注册商默认应用符合 GDPR 的隐私保护。 联系方式(姓名、电子邮件、地址)在注册表级别进行了编辑。 API 返回 RDAP 服务器提供的内容:注册商、日期、状态代码和名称服务器始终可用。
我可以查找 IP 地址而不是域的 WHOIS 数据吗?
此端点仅处理域 WHOIS。 对于 IP 地址所有权数据(ASN、网络组织、CIDR 范围),请使用 /v1/ip-whois/lookup 端点。

开始使用 botoi 构建

150+ 个 API 端点,涵盖查询、文本处理、图片生成和开发者工具。免费套餐,无需信用卡。