这篇文章给大家介绍Python任意网段端口信息探测工具的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
<强> 0 x01涉及知识点强>
多线程模板:线程多线程模块,队列队列模块,超时处理,异常处理。
IP地址块转换:扫描的是一个比较大的网段的IP的网络端口,我们并不能手动一个一个的输入IP地址,所以需要IP地址块和IP的转换。
HTTP网络请求库:请求模块。
正则表达式:需要在请求请求之后的响应中获取我们想要的横幅信息。
<强>所以我们的大致思路:强> 引用>首先,将输入的IP段转换为IP依次放入队列队列中,之后开启多线程,将队列传入多线程类,多线程类中的核心函数执行步骤:
<强> 1。取出一个IP并拼接URL为http://x.x.x.x的格式强>
<强> 2。使用请求模块获取页面状态信息,标题信息,横幅信息(服务器的横幅信息,在这里为Web容器以及其版本信息)强>
<强> 3.标题信息需要在页面源代码中获取,并且使用re模块正则匹配标题标签内的内容。强>
<强> 4。横幅信息需要获取响应中头信息中的服务器。强>
之后,加入我们的工具文档以及自定义的标志信息后,一个完整的工具就完成了。
放一下完成之后的效果图:
(. *) & lt;/title> & # 39;,,内容) ,,,,,,,if 标题: ,,,,,,,,,,,title =, title.group (1) .strip () .strip (“\ r") .strip (“\ n") [30] ,,,,,,,其他的: ,,,,,,,,,,,title =,“None" , ,,,,,,,banner =, & # 39; Not 发现# 39; ,,,,,,,试一试: ,,,,,,,,,,,banner =, r.headers[& # 39;服务器# 39;](20): ,,,,,,,除了: ,,,,,,,,,,, , ,,,,,,,sys.stdout.write (“| % -16 s % 6 s % -26 s % \ n" -30年代,%,(ip、,状态,旗帜,,标题)) , ,,,除了: ,,,,,,,通过状态是http页面的状态码,简单了解http协议的童鞋应该都知道吧。
标题是请求页面的标题信息,需要用正则表达式匹配一下。
横幅是响应头信息中字的服务器段。
下面给出一个请求请求的响应包,可以直观看出,红框就是我们想要获取的东西。