WHOIS协议的历史与标准
WHOIS是互联网上最古老的目录服务协议之一,其历史可以追溯到ARPANET时代。1982年,RFC 812首次定义了WHOIS协议,用于查询ARPANET用户的联系信息。随后,RFC 954(NICNAME/WHOIS)在1985年进行了更新。目前最新的标准是2004年发布的RFC 3912(WHOIS协议规范),该文档明确了WHOIS协议使用TCP 43端口进行文本查询和响应的基本工作机制。
经过数十年的发展,WHOIS已经从最初记录用户联系信息的简单工具,演变为涵盖域名注册信息、IP地址分配信息、AS号码注册信息的综合性查询系统。WHOIS数据库的维护依赖于分布式的WHOIS服务器网络,每个顶级域名(TLD)和每个RIR都维护着自己的WHOIS服务器。
WHOIS服务器层次结构
WHOIS查询的完整流程涉及多个层次的WHOIS服务器,理解这一层次结构对于高效获取WHOIS信息至关重要:
- Whois Server(WHOIS服务器):顶级域名和RIR各自维护的WHOIS查询服务节点,如whois.verisign-grs.com负责.com和.net域名的WHOIS查询,whois.cnnic.cn负责.cn域名的查询
- Registry(注册局):负责管理顶级域名(TLD)的机构,如Verisign管理.com和.net,CNNIC管理.cn,PIR管理.org
- Registrar(注册商):向终端用户提供域名注册服务的商业机构,如GoDaddy、Namecheap、阿里云、腾讯云等。注册商向注册局提交域名注册信息,并维护注册用户的详细数据
查询流程通常为:客户端首先查询whois.iana.org确定目标域名后缀对应的WHOIS服务器地址,然后向该服务器发送查询请求。如果该服务器返回的是注册商级别的信息,可能需要进一步查询注册商的WHOIS服务器获取完整数据。
WHOIS数据字段详解
一份完整的WHOIS查询结果包含以下关键字段:
| 字段 | 说明 | 示例 |
|---|---|---|
| Domain Name | 域名名称 | example.com |
| Registry Domain ID | 注册局内域名唯一标识 | D123456789-CNIC |
| Registrar WHOIS Server | 注册商WHOIS服务器地址 | whois.godaddy.com |
| Registrar URL | 注册商官网地址 | http://www.godaddy.com |
| Updated Date | 信息最后更新日期 | 2025-06-15T10:30:00Z |
| Creation Date | 域名注册日期 | 2020-01-01T00:00:00Z |
| Registry Expiry Date | 域名到期日期 | 2027-01-01T00:00:00Z |
| Registrant Name | 注册人姓名 | John Doe(GDPR后可能被隐藏) |
| Registrant Organization | 注册人组织名称 | Example Corp |
| Registrant Email | 注册人邮箱 | (GDPR后通常隐藏) |
| Name Server | 域名名称服务器 | ns1.example.com, ns2.example.com |
| DNSSEC | DNSSEC签名状态 | signedDelegation / unsigned |
| Domain Status | 域名状态 | clientTransferProhibited, clientDeleteProhibited等 |
Domain Status(域名状态码)详解
域名状态码是理解域名当前状态的重要指标,常见的状态码包括:
- ok:正常状态
- clientTransferProhibited:注册商锁定,禁止转移注册商,通常由注册商设置
- clientDeleteProhibited:注册商锁定,禁止删除域名
- clientUpdateProhibited:注册商锁定,禁止修改域名信息
- serverTransferProhibited:注册局锁定,禁止转移注册商,通常由注册局设置
- addPeriod:域名刚注册后的加锁期(通常为5天),在此期间不能删除域名
- autoRenewPeriod:自动续费宽限期
- redemptionPeriod:域名过期后的赎回期,在此期间可以高价赎回域名
- pendingDelete:域名即将被删除,删除后可被重新注册
RDAP:WHOIS的下一代协议
RDAP(Registration Data Access Protocol,注册数据访问协议)是ICANN推出的新一代域名注册数据查询协议,由多个RFC规范共同定义:
- RFC 7480:HTTP传输和JSON响应格式
- RFC 7481:安全机制和访问控制
- RFC 7482:查询格式规范
- RFC 7483:JSON响应数据模型
- RFC 7484:查找服务(提供查找路径)
RDAP相比传统WHOIS协议具有以下显著优势:
- 标准化数据格式:使用JSON格式返回结构化数据,无需像传统WHOIS那样解析自由格式文本,大大降低了开发成本
- 国际化支持:支持UTF-8编码和非ASCII字符,更好地支持国际化域名(IDN)
- 安全增强:基于HTTPS传输,支持OAuth认证和RBAC权限控制,实现差异化的数据访问策略
- 标准化查询:统一的RESTful API设计,查询路径规范,如/rdap/domain/example.com
- 关联数据:支持通过链接关联实体信息,如注册商信息、注册人信息之间的关联查询
ICANN已要求所有新通用顶级域(new gTLD)必须支持RDAP协议,传统TLD也在逐步迁移中。
WHOIS隐私保护机制
WHOIS隐私保护(Whois Privacy)和代理注册(Proxy Registration)是域名注册人保护个人信息的主要方式:
- Whois Privacy(隐私保护):注册商在WHOIS数据库中显示虚假的注册人信息,替代真实信息。真实信息由注册商保存,仅在特殊情况下(如法律要求)才会披露。这是最常用的隐私保护方式
- Proxy Registration(代理注册):注册商以自己的名义作为域名注册人,代理真实用户持有域名。域名在法律上属于注册商,用户仅拥有使用权利。这种方式提供了更强的隐私保护
值得注意的是,隐私保护并不影响域名的正常使用,DNS解析、域名续费、域名转移等操作不受影响。但在域名争议解决(如UDRP)过程中,投诉方可以通过法律途径获取域名注册人的真实信息。
GDPR前后WHOIS数据变化对比
2018年5月25日欧盟GDPR(通用数据保护条例)生效后,WHOIS数据发生了有史以来最重大的变化:
| 数据字段 | GDPR前 | GDPR后 |
|---|---|---|
| 注册人姓名 | 公开显示 | Redacted for Privacy |
| 注册人邮箱 | 公开显示 | Redacted for Privacy |
| 注册人电话 | 公开显示 | Redacted for Privacy |
| 注册人地址 | 公开显示 | Redacted for Privacy |
| 注册商信息 | 公开显示 | 公开显示(不变) |
| 名称服务器 | 公开显示 | 公开显示(不变) |
| 注册/到期日期 | 公开显示 | 公开显示(不变) |
| 域名状态码 | 公开显示 | 公开显示(不变) |
GDPR对WHOIS数据的影响是双面的:一方面保护了域名注册人的个人隐私,防止个人信息被滥用和爬取;另一方面也给网络安全研究人员、品牌保护机构和执法部门带来了挑战,因为他们无法再通过公开WHOIS查询获取域名注册人的联系信息。ICANN为此推出了"WHOIS数据访问模型"(WHOIS Data Access Model),通过分级访问机制在隐私保护和合法需求之间取得平衡。
WHOIS在域名投资中的应用
域名投资(Domain Investing)是一个成熟的行业,WHOIS查询在域名投资中发挥着重要作用:
- 域名价值评估:通过WHOIS查询了解域名的注册历史、到期时间、历史持有人等信息,评估域名的潜在价值。例如,一个连续注册十年以上的老域名通常比新注册的域名更有价值
- 过期域名监控:监控即将到期的优质域名,在域名进入删除期后尝试抢注。常用的监控工具包括NameJet、DropCatch、SnapNames等,这些工具通过WHOIS接口实时监控域名的状态变化
- 域名抢注策略:域名从到期到被删除通常经历三个阶段:续费宽限期(约30-45天)、赎回期(约30天)、删除期(5天)。域名投资者需要准确掌握每个阶段的时间节点,在域名被删除的瞬间发起抢注请求
- 历史WHOIS分析:通过查询域名的历史WHOIS记录,了解域名是否曾被用于恶意活动,避免购买有不良记录的域名
API接口设计
GET /api/whois/query?domain=example.com
{
"code": 0,
"data": {
"domain": "example.com",
"registrar": "GoDaddy, LLC",
"registrar_url": "http://www.godaddy.com",
"creation_date": "2020-01-01T00:00:00Z",
"expiry_date": "2027-01-01T00:00:00Z",
"updated_date": "2025-06-15T10:30:00Z",
"name_servers": ["ns1.example.com", "ns2.example.com"],
"dnssec": "unsigned",
"domain_status": [
"clientTransferProhibited",
"clientUpdateProhibited"
],
"registrant": {
"name": "Redacted for Privacy",
"organization": "Example Corp",
"country": "US"
},
"privacy": true,
"rdap_available": true
}
}
常见问题解答
Q: 为什么有些域名的WHOIS信息完全看不到?
这可能是因为域名注册商默认开启了隐私保护服务,或者该域名属于受GDPR保护的欧盟注册人。某些注册商还提供"完全隐私"模式,注册人的所有信息都被隐藏。
Q: WHOIS和RDAP应该使用哪个?
建议优先使用RDAP。RDAP返回结构化的JSON数据,解析方便,且支持规范化查询和认证机制。但考虑到部分域名注册局尚未完全支持RDAP,建议同时保留WHOIS作为备选方案。
Q: 如何查询域名的历史WHOIS记录?
可以通过第三方服务查询域名的历史WHOIS记录,如WhoisHistory.com、DomainTools、SecurityTrails等。这些服务定期抓取和存储WHOIS数据,提供时间轴方式的变更记录查询。