在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递归方法的最终else语句   没有正则表达式的Java字符串解析   带连接表的java JPA CriteriaBuilder   java如何在opengl中绘制许多小位图   java如何连接Genymotion和Appium?需要通过Genymotion emulator中的appium而不是安卓 avd打开安卓应用程序   java算法:整数太大   java排序“索引”数组   java将一个Linkedlist中的所有元素追加到另一个列表的末尾   读取pem格式的公钥时发生java错误   带有非OSGi应用程序的java Eclipse本机启动器   java Alljoyn交叉编译:Scons返回不存在的变量“Alljoyn_jar”   java自定义ID生成器并保存到文件   如何在java中解码Unicode编码?