WHOIS 已死,我为其替代品构建了一个 API

发布: (2026年3月5日 GMT+8 18:03)
4 分钟阅读
原文: Dev.to

Source: Dev.to

背景

我在构建一个需要域名注册信息的副项目。最初我使用 WHOIS,但每个注册商的输出都不同,没有统一格式,我的解析代码经常出错。

WHOSQL 的问题

  • WHOIS 已被弃用。
  • ICANN 正在推广 RDAP(注册数据访问协议)作为替代方案。
  • RDAP 返回 JSON 并通过 HTTPS 工作,大多数注册局已经切换。

RDAP 概述

RDAP 为域名、IP 和 ASN 数据提供了标准化的 JSON 接口。然而,直接使用 RDAP 仍然比较繁琐:

  1. 没有统一的服务器 – 每个顶级域都有自己的 RDAP 服务器。必须查询 IANA 引导注册表来确定要查询的服务器。

  2. 域名查询需要两步 – 对于 .com.net,注册局只存储基本数据。注册商(例如 GoDaddy、Cloudflare)在另一个服务器上保存其余信息,需要两次请求并合并结果。

  3. vCardArray 格式 – 联系信息存放在嵌套的 vCard 结构中,例如:

    ["vcard", [
      ["version", {}, "text", "4.0"],
      ["fn", {}, "text", "MarkMonitor Inc."],
      ["tel", {"type": "voice"}, "uri", "tel:+1.2086851750"],
      ["email", {}, "text", "abusecomplaints@markmonitor.com"]
    ]]

在大约 1,200 台不同服务器上解析这些数据极易出错。

我的解决方案:RDAP API

我构建了一个统一的 RDAP API,抽象掉这些复杂性。它提供单一端点,返回每个顶级域都一致的 JSON:

{
  "domain": "google.com",
  "registrar": { "name": "MarkMonitor Inc.", "iana_id": "292" },
  "dates": {
    "registered": "1997-09-15T04:00:00Z",
    "expires": "2028-09-14T04:00:00Z"
  },
  "nameservers": ["ns1.google.com", "ns2.google.com"]
}

特性

  • 引导处理 – 自动解析任意顶级域对应的 RDAP 服务器。
  • 注册商跟进 – 将注册局和注册商的数据合并为单一响应。
  • vCardArray 解析 – 将联系信息转换为易于使用的字段。
  • 速率限制管理 – 内置限流,保持在 RDAP 限额范围内。
  • 支持 IP 与 ASN 查询
  • 批量查询 – 每次请求最多可查询 10 条记录。
  • 免费查询工具 位于首页(无需账号),支持域名、IP 和 ASN。

SDK

我为多种语言发布了客户端库。下面是 Python 示例:

from rdapapi import RdapApi

client = RdapApi("YOUR_API_KEY")
result = client.domains.lookup("google.com", follow=True)
print(result.registrar.name)  # MarkMonitor Inc.

定价与文档

  • 该 API 以 SaaS 形式提供,起价 $9 / month,并提供免费试用。
  • 完整文档可在站点上查看(链接:Docs here)。

社区提问

还有人在生产环境中使用端口 43 WHOIS 吗?你们是如何处理各注册商格式不统一的问题?

0 浏览
Back to Blog

相关文章

阅读更多 »