Whois协议

创建于 访问量:

介绍

WHOIS是一种基于TCP的面向事务的查询/响应协议。广泛的用于为用户提供互联网信息服务。虽然最初只是用于提供“白页”服务和有关已注册域名的信息,但现在涵盖更广泛的信息服务。该协议所提供的内容采用人类可读的格式。本文档更新了WHOIS协议的规范,从而废弃了RFC954

由于历史原因,WHOIS有很多的协议缺憾,例如国际化和更好的安全性,可以与任何最近设计的IETF协议相比较后得知这一点并不假。本文档并不试图纠正任何这些缺点,相反,按原样记录了WHOIS协议。本文档记载了所有众所周知的WHOIS协议缺点。IETF正在进行相关的活动(CRISP工作小组),讨论新的协议,来修复这些缺憾。

协议规范

WHOIS服务器在TCP端口43上侦听来自WHOIS客户端的请求。WHOIS客户端向WHOIS服务器发出文本请求,然后WHOIS服务器回复文本内容。所有请求都是以ASCII CR终止,然后使用ASCII LF终止。答案可能会包含多行文本,因此ASCII CR或ASCII LF字符并不表示响应的结束。响应完成后,WHOIS服务器立即关闭其连接。客户端收到回复后,关闭TCP连接。

协议示例

如果向名为whois.nic.mil的WHOIS服务器请求有关“Smith”的信息,那么此TCP连接的数据包会像这样:

client                        server at whois.nic.mil

open TCP   ---- (SYN) ------------------------------>
           <---- (SYN+ACK) -------------------------
send query ---- "Smith<CR><LF>" -------------------->
get answer <---- "Info about Smith<CR><LF>" ---------
           <---- "More info about Smith<CR><LF>" ----
close      <---- (FIN) ------------------------------
           ----- (FIN) ----------------------------->

国际化

WHOIS协议尚未国际化。

WHOIS协议没有指示正在使用的字符集的机制。最初,使用的主要文本编码是US-ASCII。而实际上,一些WHOIS服务器,特别是美国以外的服务器,可能正在使用其他一些字符集来处理请求,回复。Whois协议无法预测或表达文本编码对互操作性产生了不利影响(缺乏可用性)。

安全考虑因素

WHOIS协议没有强有力的安全措施。Whois缺乏访问控制,完整性和机密性的机制。
因此,基于WHOIS的服务应仅用于提供非敏感的信息,旨在让每个人都可以访问。缺乏这种安全机制意味着在编写本文档时, IETF无法接受这一协议(译者注:这句话我没懂他想表达什么,无法接受)。


本协议原文在RFC3912,我只是做了人工翻译,谷歌的机翻看的太难受了。

一个很棒的Whois协议Python实现在gist.github