什么是WHOIS
WHOIS(读作“Who is”,非缩写)是用来查询域名的IP以及所有者等信息的传输协议。简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)。通过whois来实现对域名信息的查询。早期的whois查询多以命令列接口存在,但是现在出现了一些网页接口简化的线上查询工具,可以一次向不同的数据库查询。网页接口的查询工具仍然依赖whois协议向服务器发送查询请求,命令列接口的工具仍然被系统管理员广泛使用。whois通常使用TCP协议43端口。每个域名/IP的whois信息由对应的管理机构保存。
不同域名后缀的whois信息需要到不同的whois数据库查询。如.com的whois数据库和.edu的就不同。目前国内提供WHOIS查询服务的网站有万网、站长之家的等。每个域名或IP的WHOIS信息由对应的管理机构保存,例如,以.com结尾的域名的WHOIS信息由.com域名运营商VeriSign管理,中国国家顶级域名.cn域名由CNNIC管理。
“WHOIS”是当前域名系统中不可或缺的一项信息服务。在使用域名进行Internet冲浪时,很多用户希望进一步了解域名、名字服务器的详细信息,这就会用到WHOIS。对于域名的注册服务机构(registrar)而言,要确认域名数据是否已经正确注册到域名注册中心(registry),也经常会用到WHOIS。直观来看,WHOIS就是链接到域名数据库的搜索引擎,一般来说是属于网络信息中心(NIC)所提供和维护的名字服务之一。
WHOIS发展历史
域名系统理论的建立和应用对于Internet而言具有里程碑式的意义,因而早在ARPANet时代,域名信息就备受网络用户的关注。位于美国加州Menlo Park的斯坦福研究院(Stanford Research Institute,SRI)在20世纪80年代初行使着DDN网络信息中心(Network Information Center,NIC)的职责,在这里工作的Ken Harrenstien和Vic White等人敏感地意识到提供已注册域名信息的查询对于NIC而言是一项非常重要的工作,于是便开始着手建立WHOIS系统,并将其工作成果提交给IETF 。经过Ken Harrenstien等人的改进和修改,NICNAME/WHOIS理论得以进一步完善,成为Internet上的标准服务之一 。其中,NICNAME是WHOIS服务在TENEX,TOPS-20和一部分UNIX系统上的叫法。因为ARPANet上主机数目有限,此时的WHOIS服务主要通过位于SRI的中央数据库来维护。
这以后几乎所有的UNIX版本都将WHOIS作为TCP/IP协议栈中的上层应用协议,并实现了著名的客户端程序whois。在绝大多数UNIX和类UNIX系统中键入man 1 whois,都会得到whois客户端程序的使用帮助。同样,用户只要telnet到运行WHOIS Server的43端口,敲入所需查询的信息,也能得到相应的信息反馈。
随着Internet的急速膨胀,人们意识到集中式的WHOIS Server越来越不能够满足网络用户的需求,于是分布式就成了WHOIS Server的主要发展方向。“Referral WHOIS”(简称为RWhois)就是这个方向上的研究成果,其主要思路是利用分布式的数据库来维护众多的域名、主机等信息,用referral来指示client经由网络上的多个的Server最后连到所查询信息的权威WHOIS Server。另一方面,IETF成立了Whois and Network Information Lookup Service Working Group(WNILS)来研究将本地WHOIS服务进行扩展和标准化,并称之为WHOIS++ 。
计算机和网络通信技术在不断发展,WHOIS系统新的功能也在不断增加。比如多语言功能,支持更多的字符集,结构化数据,更强劲的表达式搜索,更安全的数据连接,更友好的用户界面等等。上世纪90年代以来,Web应用迅速普及,通过Web系统进行域名信息的查询已经成为主流趋势,各级域名注册管理机构都实现了其基于Web的WHOIS系统,Client端多以网页为主的形式提供。
WHOIS服务过程
WHOIS服务是一个在线的“请求/响应”式服务。WHOIS Server运行在后台监听43端口,当Internet用户搜索一个域名(或主机、联系人等其他信息)时,WHOIS Server首先建立一个与Client的TCP连接,然后接收用户请求的信息并据此查询后台域名数据库。如果数据库中存在相应的记录,它会将相关信息如所有者、管理信息以及技术联络信息等,反馈给Client。待Server输出结束,Client关闭连接,至此,一个查询过程结束。
WHOIS系统组成
根据IETF标准要求,WHOIS服务一般由WHOIS系统来提供。WHOIS系统是一个Client/Server系统。其中Client端主要负责:
1)提供访问WHOIS系统的用户接口;
2)生成查询并将其以适当的格式传送给Server;
3)接收Server传回的响应,并以用户可读的形式输出。
Server端则主要负责接收Client端的请求并发回响应数据。Internet上基于TCP协议的基本服务都有自己默认的TCP端口号,象HTTP服务的默认端口号为80,FTP服务的默认控制端口号为21(数据端口为20)等。同样作为Internet上核心服务之一的WHOIS服务,其Server端默认监听43号TCP端口,接收查询请求并产生响应。一般来说,Server端可以接收三种类型的信息查询:联系人、主机和域名。对于同一查询,Server端的输出应该具有一致性和稳定性。