什么是WHOIS?
WHOIS是用于查询域名注册信息的原始协议,可追溯到互联网早期。当你执行WHOIS查询时,你会收到基于文本的响应,包含有关域名注册的详细信息,包括注册商信息、创建日期、过期日期以及历史上的注册人联系信息。
WHOIS的历史
WHOIS出现于1980年代,当时互联网规模要小得多。最初记录在RFC 812(1982),其目的是让系统管理员识别谁负责网络资源。该协议在TCP端口43上运行,接受简单的文本查询并返回人类可读但机器不友好的响应。
为什么WHOIS对开发者有问题
如果你构建了解析WHOIS数据的应用程序,你一定遇到过其基本缺陷:没有标准格式。每个注册商和注册局的WHOIS输出格式都不同。考虑这些现实挑战:
字段名称不一致
- 一个注册商使用"Creation Date"
- 另一个使用"Created On"
- 第三个使用"Registration Date"
- 有些使用小写的"created:"
日期格式多样
2024-01-15T00:00:00Z
15-Jan-2024
January 15, 2024
15/01/2024
不可预测的结构
有些注册商在章节之间包含空白行,有些没有。有些使用冒号作为分隔符,其他使用制表符。这种不一致意味着健壮的WHOIS解析需要维护数十个正则表达式,并在注册商更改其格式时不断更新。
WHOIS技术细节
WHOIS查询在协议级别很简单:
1. 打开到WHOIS服务器端口43的TCP连接
2. 发送域名,后跟换行符
3. 读取响应直到连接关闭
echo "example.com" | nc whois.verisign-grs.com 43
响应是没有标准化结构的纯文本,需要仔细解析。
WHOIS的隐私变化
2018年GDPR的引入从根本上改变了WHOIS数据的可用性。以前,WHOIS响应包括:
- 注册人姓名和组织
- 电子邮件地址和电话号码
- 物理地址
现在,大多数注册商都会删除此个人信息,仅显示:
- 注册商名称
- 注册和过期日期
- 名称服务器信息
- 域名状态码
这种隐私保护意味着WHOIS对联系查询的用处较少,但对可用性检查和技术域名信息仍然有价值。
何时使用WHOIS与RDAP
对于新开发,始终在可用时选择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维护根数据库,可以指导你找到适当的TLD WHOIS服务器。
WHOIS的未来
ICANN已规定采用RDAP,WHOIS正在逐步淘汰。虽然WHOIS服务器可能会在未来几年继续运行,但新应用应该构建在RDAP上。DomScan专门使用RDAP进行其域名可用性检查,确保跨所有支持的TLD的一致、可靠的结果。