在IPv4子网上查找打开的服务器,例如ssh
findssh的Python项目详细描述
查找ssh服务器(不带nmap)
平台独立地查找IPv4子网上的ssh服务器(或具有开放端口的其他服务),而不使用nmap。
使用python标准库asyncio
协同程序和单个线程在不到1秒的时间内扫描整个ipv4子网。
asyncio
协程方法使用一个线程,比concurrent.futures.ThreadPoolExecutor
快得多,,甚至(特别是)线程池中有数百个线程。
尽管在我们的测试中没有发现速度优势,findssh
也适用于pypy。
Matlab的工作原理类似。
安装
直接运行FindSSH.py
。
要允许从其他程序使用,您可以通过以下方式安装:
pip install findssh
或来自此回购:
pip install -e .
用法
从命令行:
findssh
命令行选项
-s
检查服务器中的字符串,以尝试验证是否找到了正确的服务-t
每台服务器的超时(秒)对于高延迟连接很有用-b
基本IP(检查自己的子网之外的其他子网)-p
要扫描的网络端口(默认22)
基准
这些测试在wifi上使用了500ms超时。
协同程序(单线程、快速、精简、推荐):
%timeit findssh.main() 522 ms ± 1.26 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
线程池(最大100线程,慢速,重型):
%timeit findssh.threadpool.main() 1.39 s ± 213 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)