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, 主机名解析, 二进制发布, 云存储安全, 企业级, 可配置超时, 安全测试, 并发, 开源工具, 开源项目, 排序输出, 攻击性安全, 模块化, 现代网络, 端口扫描器, 线程安全, 网络工具, 网络扫描, 锁保护