看我如何收集全网IP的whois信息

安全工具 2017-11-22

今天给大家分享几个脚本,看看如何收集全网whois信息。首先了解一下whois.py这个基本程序。

whois程序

首先看一下程序的执行结果,如图:

1.jpg

看到结果之后我们大概讲一下原理,这个程序是根据linux下的whois程序来写的,其中有一个重要的文件:

config.cnf

这里的内容是不同的A段所属的whois服务器,截取部分如图:

2.png

程序关键函数

读取配置文件,将配置文件中的内容初始化到字典中:

3.png

获取参数,返回查询这个IP需要的whois服务地址:

def getWhoSrv(ip):
    key = ip.split(".")[0]
    return configdrct[key]

查询IP的whois信息:

4.png

如何获取全网whois信息

我的思路是通过输入一个初始IP,如:1.0.0.1,结果如图:

5.jpg

图中红色标注的地方有个IP段,获取其末尾IP然后加一,成为下一轮的whois参数,依次类推,就可以获取到全网的whois信息,由于不同的whois服务器返回的结果格式不尽相同,所以想要做的好,需要对不同的whois服务器返回的结果用不同的方式解析。

程序关键函数

有了基础whois程序后,第一步是要解析出结果中的IP段

6.jpg

我写的这个还是比较粗糙的,写了一个简单的正则来匹配IP段,其实大家可以根据不同的whois服务器来使用不同的函数解析出IP地址。我们看到上面的代码中有一个函数 getSmallIpRange,这个函数的由来,是因为有些IP的whois结果中会有两个所属IP段,为了获取的更加准确,所以就选择范围比较小的IP段作为下一次whois的参数。具体实现如下:

7.jpg

还有一个关键函数是获取下一个whois的IP

8.png

到这里,关键的函数部分就解释的差不多了,想要看源码的可以点击原文链接查看,写的比较粗糙,大家凑和看看。

总结

这里大概讲了一下我是如何收集全网whois信息的,在freebuf上有个文章,说是可以下载whois信息,连接如下:

http://www.freebuf.com/articles/network/107372.html

大家可以看看,我下载过这些看了下,有些东西被打马了,所以就没有用他的。

大家还有什么好的建议或者意见请留言。


本文由 myh0st 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

楼主残忍的关闭了评论