前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >看我如何收集全网IP的whois信息

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

作者头像
信安之路
发布2018-08-08 11:15:07
1.1K0
发布2018-08-08 11:15:07
举报
文章被收录于专栏:信安之路信安之路

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

whois程序

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

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

config.cnf

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

程序关键函数

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

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

代码语言:javascript
复制
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

代码语言:javascript
复制

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

总结

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

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-08-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 信安之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • whois程序
  • 如何获取全网whois信息
    • 程序关键函数
    • 总结
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档