看我如何收集全网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

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

原文发布于微信公众号 - 信安之路(xazlsec)

原文发表时间:2017-08-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

3000 字 Flask 快速学习指南:从入门到开发

作者:过了即是客 Flask是一个Python编写的Web 微框架,让我们可以使用Python语言快速实现一个网站或Web服务。本文参考自Flask官方文档,...

66890
来自专栏前端萌媛的成长之路

JavaScript模块化发展

35630
来自专栏瓜大三哥

Matlab基本语法7

基本编程技巧 脚本m文件和函数m文件,脚本是一系列命令、语句的简单组合。脚本文件中的变量都是全局变量,程序运行后,这些变量保存在matlab的基本工作空间内,一...

26490
来自专栏我是攻城师

给Java字节码加上”翅膀“的JIT编译器

上面文章在介绍Java的内存模型的时候,提到过由于编译器的优化会导致重排序的问题,其中一个比较重要的点地方就是关于JIT编译器的功能。JIT的英文单词是Just...

13750
来自专栏十月梦想

不同函数间的数据传递

        小程序不想mvc的框架一样,获取dom进行操作,只是依靠数据绑定,数据有限原则进行数据传输.

8620
来自专栏iOS开发笔记

iOS开发之单例模式你用对了吗

、 单例在iOS开发中可以说是很常见的一种设计模式,在你的项目中或许你已经用过很多次,大家可能都会想不就是单例吗,我闭着眼睛单手就能写。是的,单例可以说是所有设...

9940
来自专栏智能算法

Python学习(十)---- python中的进程与协程

原文地址: https://blog.csdn.net/fgf00/article/details/52790360 编辑:智能算法,欢迎关注! 上期我们一起学...

9420
来自专栏编程理解

Linux命令使用:gzip、bzip2与zip

文件的压缩/解压操作在日常使用中很常见,压缩后的文件可以节省存储空间,又方便进行网络传输。

15920
来自专栏PHP在线

PHP10个实用函数

介绍PHP中的10个实用函数 [导读] PHP的功能越来越强大,里面有着非常丰富的内置函数。资深的PHP程序员对它们可能都很熟悉,但很多的PHP学习者,仍然对...

37940
来自专栏跟着阿笨一起玩NET

.NET简谈静态事件链

在我们日常开发过程中经常会遇到多个类实例之间的关联,不管是B/S还是C/S的项目,在对实例的使用是一样的;只不过C/S的项目比较好控制,不管是UI层的对象都能很...

7910

扫码关注云+社区

领取腾讯云代金券