什么是 WHOIS?
WHOIS 是一种用于查询域名注册信息的传统协议。查询结果通常包含注册商、创建日期、到期日期、名称服务器和域名状态等信息;由于隐私政策,注册人联系方式可能被隐藏。
WHOIS 的历史
WHOIS 源于互联网早期的目录服务,使用 TCP 端口 43 接收域名查询并返回纯文本。它面向人类阅读设计,缺少统一的机器可读结构。
为什么 WHOIS 给开发者带来困难
不同注册商和注册局可能使用不同字段、日期格式和排版,解析器必须处理大量例外。
字段名称不一致
- 同一含义可能写作 "Creation Date"、"Created On" 或 "Registration Date"
- 字段名称的大小写和分隔符也可能不同
日期格式多样
2024-01-15T00:00:00Z
15-Jan-2024
January 15, 2024
15/01/2024
结构不可预测
有些服务器在章节之间加入空行,有些使用冒号,有些使用制表符。稳健的解析器需要兼容这些差异,并在服务方调整格式时持续维护。
WHOIS 的技术细节
WHOIS 查询过程很简单:客户端连接服务器的 TCP 43 端口,发送域名和换行符,然后读取服务器关闭连接前返回的文本。
服务器通常按纯文本返回状态、注册局或注册商信息、名称服务器以及日期字段。客户端必须正确处理字符编码、行尾差异、超时和服务器返回的错误信息;不能把“没有匹配记录”与查询失败混为一谈。生产系统还应限制响应大小,避免异常长的文本占用资源。
echo "example.com" | nc whois.verisign-grs.com 43
WHOIS 的隐私变化
2018 年《通用数据保护条例》(GDPR)实施后,公开注册数据发生了明显变化。过去的响应可能包含注册人姓名、组织、电子邮件、电话和地址;如今通常只显示注册商、注册与到期日期、名称服务器和状态码等非个人信息。
何时使用 WHOIS 与 RDAP
新应用应优先使用 RDAP,因为它提供标准化、结构化的 JSON 响应。WHOIS 仍可用于尚未迁移的遗留系统、尚未支持 RDAP 的部分 ccTLD,以及历史数据分析。
查找 WHOIS 服务器
每个 TLD 都有对应的 WHOIS 服务器。例如,.com 和 .net 常使用 whois.verisign-grs.com,.org 常使用 whois.publicinterestregistry.org,.io 常使用 whois.nic.io。IANA 的 whois.iana.org 数据库可帮助定位相应服务器。
WHOIS 的未来
ICANN 正推动注册数据查询向 RDAP 迁移,WHOIS 将逐步退出新系统。RDAP 使用 HTTPS 和 JSON,能够返回更一致的字段、状态和错误信息,并支持按权限提供注册数据。WHOIS 在短期内仍会出现在旧注册局、历史档案和排查遗留系统的场景中,因此兼容读取仍有价值。
DomScan 使用 RDAP 进行域名可用性检查,以便在支持的 TLD 之间提供一致的结构化结果;当某个后缀仍依赖 WHOIS 时,结果会明确反映其数据来源和限制。