zilong3033 / portscan

Python多线程和异步协程扫描速度比较

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

portscan

Python多线程和异步协程全端口扫描速度比较

设置ulimit为65535

因为是用socket连接,所以需要设置系统文件打开最大数

结果比较

shodan随机选择一个IP:115.231.108.219,开放端口有

  • 80
  • 443
  • 902
  • 8000
  • 9080
线程池版

多线程方式采用线程池,节约创建新线程开销,超时5s,5000个线程

115.231.108.219 80
115.231.108.219 427
115.231.108.219 443
115.231.108.219 902
115.231.108.219 8000
115.231.108.219 9080
115.231.108.219 8300

已经超过4分钟了,不继续了。结束运行
asyncio异步版

超时5s,5000个协程

115.231.108.219 902
115.231.108.219 427
115.231.108.219 443
115.231.108.219 80
115.231.108.219 8000
115.231.108.219 8300
115.231.108.219 9080

75.834645986557

在对于IO阻塞方面,异步操作要优于多线程 操作,且更节约系统资源。

About

Python多线程和异步协程扫描速度比较


Languages

Language:Python 100.0%