BenzoXdev/NetProbe-X

GitHub: BenzoXdev/NetProbe-X

一款基于 Mojo 的高性能多线程 TCP 端口扫描器,解决快速发现开放端口与收敛资产范围的问题。

Stars: 1 | Forks: 0

# NetProbe-X 企业版 **高性能 TCP 端口扫描器**,使用 [Mojo](https://docs.modular.com/mojo/) 编写。快速、多线程、可配置,支持 JSON 导出和主机名解析。 ## 功能特性 | 功能 | 描述 | |--------|-------------| | **多线程** | 可配置的工作线程(默认 200),支持快速扫描 | | **主机名解析** | 接受 IP 地址或主机名(DNS 解析) | | **端口范围** | 可扫描自定义范围(如 `1-1000`)或完整 1–65535 | | **可配置超时** | 每个连接的超时时间(秒) | | **JSON 导出** | 结果保存为 JSON 文件,包含目标、开放端口和持续时间 | | **线程安全** | 锁保护的共享状态;基于哨兵的工作线程关闭机制(无死锁) | | **排序结果** | 开放端口在输出和导出中按数值排序 | | **CLI 选项** | 完整的命令行接口,支持短选项和长选项 | ## 系统要求 - **Mojo**(Modular Mojo SDK) 从 [Modular](https://docs.modular.com/mojo/manual/get-started) 安装,并确保 `mojo` 在你的 `PATH` 中。 - **Python 互操作**(Mojo 用于 `socket`、`threading`、`queue`、`json`)——如果 Mojo 配置正确,无需额外安装 Python。 ## 安装 1. **安装 Mojo**(请参考 [开始使用 Mojo](https://docs.modular.com/mojo/manual/get-started))。 2. **克隆或下载**项目: ```bash cd NetProbe-X ``` 3. **运行**扫描器(无需构建步骤): ```bash mojo run NetProbe-X.mojo <目标> [选项] ``` ## 用法 ### 摘要 ``` mojo run NetProbe-X.mojo [options] ``` ### 参数和选项 | 选项 | 缩写 | 描述 | 默认值 | |--------|--------|-------------|--------| | `--help` | `-h` | 显示用法并退出 | — | | `--ports N-M` | `-p` | 要扫描的端口范围(例如 `1-1000`、`80`、`22-443`) | `1-65535` | | `--timeout S` | `-t` | 连接超时(秒,浮点数) | `1.0` | | `--threads N` | `-j` | 工作线程数量(1–2000) | `200` | | `--output FILE` | `-o` | JSON 输出文件路径 | `enterprise_scan.json` | | `--quiet` | `-q` | 不实时打印开放端口 | 关闭 | - **目标**:要扫描的 IP 地址或主机名(必需)。 ## 示例 **基础扫描(所有端口,使用默认设置):** ``` mojo run NetProbe-X.mojo 192.168.1.1 ``` **扫描常用 Web 端口,使用 100 个线程:** ``` mojo run NetProbe-X.mojo example.com -p 80-443 -j 100 ``` **自定义输出文件和超时:** ``` mojo run NetProbe-X.mojo 10.0.0.1 -p 22-8080 -o scan.json -t 2 ``` **静默模式(仅最终摘要):** ``` mojo run NetProbe-X.mojo 127.0.0.1 -q -o results.json ``` **显示帮助:** ``` mojo run NetProbe-X.mojo --help ``` ## 输出 ### 控制台 - 横幅和扫描参数(目标、端口范围、线程数、超时)。 - 实时 `[OPEN] <端口>` 行(除非使用 `-q`)。 - 最终摘要:开放端口数量、完整列表(已排序)、持续时间以及导出路径。 ### JSON 导出 通过 `-o` 指定的文件(默认:`enterprise_scan.json`)包含: ``` { "target": "192.168.1.1", "open_ports": [22, 80, 443], "duration_seconds": 12.34, "author": "benzoXdev", "edition": "Enterprise" } ``` - **target**:解析后的 IP(如果输入已是 IP,则保持不变)。 - **open_ports**:排序后的开放端口号列表。 - **duration_seconds**:总扫描时间(秒)。 ## 实现说明 - **线程机制**:工作线程从共享队列中获取端口;通过哨兵值通知完成以避免死锁。 - **并发控制**:对开放端口列表的访问受锁保护。 - **解析**:目标在启动时通过 `gethostbyname` 解析一次;解析失败会输出明确错误并退出。 ## 许可证与作者 - **作者**:benzoXdev - **项目**:NetProbe-X 企业版 请负责任地使用,仅扫描你被授权扫描的网络和主机。 ## 贡献 改进和修复欢迎提交(例如通过拉取请求或问题)。请保持代码为英文,并确保 README 与当前的 CLI 和行为保持一致。
标签:CLI, DNS查询工具, DNS解析, Homebrew安装, JSON导出, Mojo, Sentinel, TCP端口扫描, WiFi技术, worker shutdown, 主机名解析, 二进制发布, 云存储安全, 企业级, 可配置超时, 安全测试, 并发, 开源工具, 开源项目, 排序输出, 攻击性安全, 模块化, 现代网络, 端口扫描器, 线程安全, 网络工具, 网络扫描, 锁保护