使用协程进行端口扫描

本文介绍了一种利用Python协程进行端口扫描的方法,旨在提高扫描速度、准确性并降低资源消耗。对比实验显示,协程模式在扫描65535个端口时仅需15-20秒,相比于多线程+SYN扫描的20-25秒有显著优势。代码中,任务执行、异步调用和程序IO操作被巧妙地拆分成不同部分,通过task函数执行全连接扫描,asynchronous函数进行异步调度,Stats类负责UI展示。
摘要由CSDN通过智能技术生成

使用协程进行端口扫描
运行截图
在这里插入图片描述

(一)设计目的
在快速扫描的同时提高准确性并减少资源消耗
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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值