Donovan-Nudrak/Scan_Ports

GitHub: Donovan-Nudrak/Scan_Ports

一个用 Python 编写的轻量级教育型 TCP 端口扫描器,支持多线程并发扫描和 banner grabbing。

Stars: 0 | Forks: 0

# 迷你端口扫描器(教育工具) 一个使用 Python 编写的轻量级 TCP 端口扫描器,支持并发和可选的 banner grabbing 功能。 ## 功能 - 基于连接的 TCP 端口扫描 - 多线程执行以提升性能 - 可选的 banner grabbing 以识别服务 - 灵活的端口输入(单个端口、范围、混合) - 将结果导出为 JSON 或 CSV ## 工作原理 扫描器尝试与给定主机上的一系列目标端口建立 TCP 连接。 - 如果连接成功 → 端口被标记为 **开放** - 如果启用,工具将尝试从开放端口读取服务 banner - 收集所有结果并可选择导出 ## 使用方法 ``` chmod +x scan.py python3 scan.py [options] ``` ## 参数 ### 必需参数 - `host` 要扫描的目标 IP 或域名 ### 可选参数 - `-p, --ports` 要扫描的端口 示例:`22,80,443` 或 `1-1000` 默认值:`22,80,443,3306,8080-8082` - `-t, --timeout` 每个端口的连接超时时间(秒) 默认值:`1.0` - `-w, --workers` 并发线程数 默认值:`100` - `--no-banner` 禁用 banner grabbing - `-o, --output` 将结果保存到文件 支持的格式: - `.json` - `.csv` ## 示例 ### 基本扫描 ``` python3 scan.py 127.0.0.1 ``` ### 自定义端口 ``` python3 scan.py 192.168.1.1 -p 22,80,443 ``` ### 端口范围 ``` python3 scan.py 192.168.1.1 -p 1-1000 ``` ### 快速扫描并输出 ``` python3 scan.py 192.168.1.1 -w 200 -o result.json ``` ### 禁用 banner grabbing ``` python3 scan.py 192.168.1.1 --no-banner ``` ## 输出格式 每条结果包含: ``` { "port": 22, "open": true, "banner": "SSH-2.0-OpenSSH_8.2", "error": null } ``` ## 技术说明 - 使用 `socket` 进行 TCP 连接 - 使用 `ThreadPoolExecutor` 实现并发 - banner grabbing 使用基本的 recv/send 探测 - 结果按端口号排序 ## 免责声明
标签:Banner抓取, Linux工具, Python, Qt框架, Socket编程, TCP扫描, 二进制发布, 安全脚本, 并发编程, 开源工具, 插件系统, 教育工具, 数据统计, 无后门, 服务识别, 端口扫描, 端口探测, 系统分析, 系统独立性, 网安工具, 网络分析, 网络安全, 网络编程, 轻量级工具, 逆向工具, 隐私保护