Whois协议查询IP的原理

前面我已经有文章讲过如何通过查询IP数据库文件查询IP地址。本地的IP数据库毕竟只是业余的爱好者们扩充起来的数据库,不具有权威性,真正拥有IP详细信息的是IP(域名)注册的官方机构。为了提高Internet的透明度、抵制Internet上的非法活动,各级Internet管理机构设立了可以查知IP地址和域名所有者登记资料的WHOIS服务器。而进行Internet查询的协议就是Whois协议。

本文是作者的“IP查询工具”的相关文章,这个工具最早是2002年写出来的,当时是直接查询的Intron's Laboratory(http://www.intron.ac/)的网页查询(http://www.intron.ac/service/index.html)。网站作者还把他的查询原理放在了网站上(现在此页面还是存在的)。在他的同意下我引用了他的服务,同时根据他的原理升级了我的IP查询工具,在此向他表示感谢。

下面的文字就是来自http://www.intron.ac/technique/whois.html

IP地址信息查询(WHOIS)服务的原理

  RFC812定义了一个非常简单的Internet信息查询协议——WHOIS协议。其基本内容是,先向服务器的TCP端口43建立一个连接,发送查询关键字并加上回车换行,然后接收服务器的查询结果。
  世界上各级Internet管理机构秉承公开、公正、共享的原则,设立了可以查知IP地址和域名所有者登记资料的WHOIS服务器,以便所有Internet的使用者排除故障、打击网上非法活动。全世界国际区域性的IP地址管理机构有四个:ARIN、RIPE、APNIC、LACNIC,他们负责的IP地址的地理区域如下图所示。

E:/My Projects/MyVC/IPQuery2/文档/IP信息查询服务的原理2.files/rir.jpg

重要的Internet管理机构和常用的WHOIS服务器

机构缩写 WHOIS服务器地址 机构全名及地点 提供查询内容
CERNIC whois.edu.cn 中国教育与科研计算机网网络信息中心
(清华大学·中国北京) 中国教育网内的IP地址和.edu.cn域名信息
CNNIC whois.cnnic.net.cn 中国互联网络信息中心
(中国科学院计算机网络信息中心·中国北京) .cn域名(除.edu.cn)信息
INTERNIC whois.internic.net 互联网络信息中心
(美国洛杉矶市Marina del Rey镇) .com,.net,.org,.biz,.info,.name
域名的注册信息(只给出注册代理公司)
ARIN whois.arin.net 美国Internet号码注册中心
(美国弗吉尼亚州Chantilly市) 全世界早期网络及现在的美国、加拿大、撒哈拉沙漠以南非洲的IP地址信息
APNIC whois.apnic.net 亚洲与太平洋地区网络信息中心
(澳大利亚昆士兰州密尔顿镇) 东亚(包括中国大陆和台湾)、南亚、大洋洲IP地址注信息
RIPE whois.ripe.net 欧州IP地址注册中心(荷兰阿姆斯特丹) 欧洲、北非、西亚地区的IP地址信息
TWNIC whois.twnic.net 台湾互联网络信息中心(中国台湾台北) .tw域名和部分台湾岛内IP地址信息
JPNIC whois.nic.ad.jp 日本互联网络信息中心(日本东京) .jp域名和日本境内的IP地址信息
KRNIC whois.krnic.net 韩国互联网络信息中心(韩国汉城) .kr域名和韩国境内的IP地址信息
LACNIC whois.lacnic.net 拉丁美洲及加勒比互联网络信息中心(巴西圣保罗) 拉丁美洲及加勒比海诸岛IP地址信息

本机上的自动WHOIS服务,是按照下图所示的流程,依次查询若干个WHOIS服务器之后,得到某个IP地址的WHOIS信息。
E:/My Projects/MyVC/IPQuery2/文档/IP信息查询服务的原理2.files/autowhois.gif


确实,RFC812所提供的Whois协议非常简单,简单到只要将IP地址字符串发送到Whois服务器并加一个"/n"即可,你甚至可以直接使用telnet进行查询。查询到的结果(以查询207.46.20.60为例)通常如下所示:
OrgName:    Microsoft Corp
OrgID:      MSFT
Address:    One Microsoft Way
City:       Redmond
StateProv:  WA
PostalCode: 98052
Country:    US

NetRange:   207.46.0.0 - 207.46.255.255
CIDR:       207.46.0.0/16
NetName:    MICROSOFT-GLOBAL-NET
NetHandle:  NET-207-46-0-0-1
Parent:     NET-207-0-0-0-0
NetType:    Direct Assignment
NameServer: NS1.MSFT.NET
NameServer: NS5.MSFT.NET
NameServer: NS2.MSFT.NET
NameServer: NS3.MSFT.NET
NameServer: NS4.MSFT.NET
Comment:   
RegDate:    1997-03-31
Updated:    2004-12-09

RTechHandle: ZM39-ARIN
RTechName:   Microsoft
RTechPhone:  +1-425-882-8080
RTechEmail:  [email protected]

OrgAbuseHandle: HOTMA-ARIN
OrgAbuseName:   Hotmail Abuse
OrgAbusePhone:  +1-425-882-8080
OrgAbuseEmail:  [email protected]

OrgAbuseHandle: MSNAB-ARIN
OrgAbuseName:   MSN ABUSE
OrgAbusePhone:  +1-425-882-8080
OrgAbuseEmail:  [email protected]

OrgAbuseHandle: ABUSE231-ARIN
OrgAbuseName:   Abuse
OrgAbusePhone:  +1-425-882-8080
OrgAbuseEmail:  [email protected]

OrgNOCHandle: ZM23-ARIN
OrgNOCName:   Microsoft Corporation
OrgNOCPhone:  +1-425-882-8080
OrgNOCEmail:  [email protected]

OrgTechHandle: MSFTP-ARIN
OrgTechName:   MSFT-POC
OrgTechPhone:  +1-425-882-8080
OrgTechEmail:  [email protected]

由于作者处于教育网内,学校限制了对国外服务器的连接,因此在我的程序中使用了socks代理查询whois服务器,同时一些IP管理机构通常也会提供网页查询,这样就可以使用http代理查询。与上面的whois服务器对应的http查询服务器有:
INTERNIC: http://www.internic.net/whois.html
ARIN: http://www.arin.net/whois/
APNIC: http://www.apnic.net/apnic-bin/whois.pl
RIPE: http://www.ripe.net/search/index.html
TWNIC: http://whois.twnic.net/
JPNIC: http://whois.nic.ad.jp/cgi-bin/whois_gw
KRNIC: http://whois.krnic.net/whois/webapisvc
LACNIC: http://lacnic.net/cgi-bin/lacnic/whois?lg=EN

最后,从这个链接ftp://sipb.mit.edu/pub/whois/whois-servers.list可以得到全球各个国家的whois服务器的列表,因此有可能进行更进一步的查询。

你可能感兴趣的:(Whois协议查询IP的原理)