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

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

whois程序

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


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

config.cnf

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


程序关键函数

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

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

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

查询IP的whois信息:

如何获取全网whois信息

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

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

程序关键函数

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

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

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

 

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

总结

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值