使用协程进行端口扫描
运行截图
(一)设计目的
在快速扫描的同时提高准确性并减少资源消耗
2. 解决端口扫描效率低下的问题
3. 减少多线程或多进程扫描的资源消耗
4. 解决SYN等半连接扫描结果不准确的问题
5. 图形化界面
(二)量化效率及比较
扫描模式端口数耗时协程模式6553515-20s多线程+SYN扫描(1000个线程)102420-25s
(三)代码和功能详解
1.代码拆分
(1)核心代码部分
执行一个端口扫描 函数 task
异步调用(协程) 函数 asynchronous
程序IO操作 类 stats
(2)普通代码部分
处理IP地址 包括导入IP地址 get_ip_list
处理端口号 包括导入端口号 get_port_list
主程序 调用函数
2.主要函数说明
(1)task函数
作用: 执行全连接扫描任务
传入:
ip 、port组成的元组 (ip, port)
输出:
将开放的端口放入seccess_list列表 同时写入csv 表格
def task(addr): # addr ((ip, port))
so