本帖最后由 莫离 于 2015-1-11 11:24 编辑
这款软件我写出来也有些时候了,之前在论坛发过成品,有人说是API,也有人说是post,我也稍微地介绍了一下原理,具体的也可以看我的网站上的内容哈。今天打算把它分享出来,让大家一起学习,也许你看完源码后还会大吃一惊哦,老规矩,回复可见哈,拒绝伸手党,大神直接无视。
群里有人猜测是API接口,有人猜测是post,还有人猜测是正则表达式的匹配,个人感觉说对了一半,其实不然,如果用post或者正则匹配的话,那这个软件写了等于没写,其实原理很简单。
Rfc812定义了一个非常简单的Internet信息查询协议——WHOIS协议。其基本内容是,先向服务器的TCP端口43建立一个连接,发送查询关键字并加上回车换行,然后接收服务器的查询结果。这里很重要,主要是43号端口的连接,其次是要知道全世界国际区域性的IP地址管理机构有四个:ARIN、RIPE、APNIC、LACNIC,他们负责的IP地址的地理区域。 每个Internet管理结构都有它自己的WHOIS服务器,在这里我罗列一些重要的Internet管理机构表格: 机构缩写 | 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服务器地址的43号端口,并对他们发送一个数据包,然后再取回数据包就可以了。 我在网上看到这样一个原理图: 可以根据这种图来进行判断,域名的查询主要是基于RFC 954提供的WHOIS协议。在上述过程中,我们实际上是访问了InterNIC站点的WHOIS服务器,该服务器从WHOIS数据库中查询我们所需要的内容。 WHOIS服务器是一个基于"查询/响应"的TCP事务服务器,它运行在SRI-NIC机器上(26.0.0.73或10.0.0.51),向用户提供internet范围内的目录服务。本地主机上的用户程序可以通过Internet访问该服务器,其过程主要有下面三步: (1)在TCP服务端口43(十进制)连接SRI-NIC服务主机; (2)发送“whois”加空格加上要查询的域名,以回车和换行()结尾; (3)接受相应命令的返回信息,一旦输出结束,服务器将关闭连接。
源码下载回复可见: |