在IPv4子网上查找打开的服务器,例如ssh

findssh的Python项目详细描述


DOI

Build StatusCoverage percentBuild statusLanguage grade: PythonPyPi versionsMaintainabilityPyPi Download stats

查找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)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java正则表达式匹配子字符串/字符在字符串中出现的次数   java使用来自其他模块的Springbean?   java如何创建简单报警应用程序中的列表项,该应用程序可以在安卓中“创建/编辑报警”设置屏幕   java如何让我的应用程序运行一段时间?   java“列表接口提供了两种有效插入和删除多个元素的方法”有人知道第二种方法是什么吗?   java代码层中的异常处理   java在比较字符串和null时显示异常   spring在Java(基本XSS)中对脚本相关HTML标记的错误中和   java每30秒在后台刷新一次Android应用程序以获取推送通知\   从JSON文件Java获取字符串   java Hibernate SessionFactory:如何在Tomcat中配置JNDI?   java无法访问应用程序中的h2数据库文件   java领域响应状态=400   java使用ajax在JSP中获取“request.setAttribute”属性