X3roxDev/xmapper
GitHub: X3roxDev/xmapper
一款单文件 Python 轻量级网络发现与端口扫描器,提供 ping 扫射、TCP/UDP 扫描、banner 抓取、OS 猜测及多格式报告导出功能。
Stars: 0 | Forks: 0
# 网络 Mapper
轻量级网络发现与端口扫描器
Network Mapper 是一个单文件 Python CLI,适用于专注于 Windows 的网络发现、TCP 扫描、UDP 探测、banner grabbing、OS 猜测和报告导出。请仅在您拥有或获得明确测试许可的网络和系统上使用它。
## 文件
```
xmapper/
├── main.py
└── README.md
```
## 安装说明
需要 Python 3.11+。
```
cd C:\Users\kapuc\OneDrive\Plocha\MujServer\xmapper
pip install rich colorama
```
`rich` 和 `colorama` 可改善 Windows 终端 UI。如果缺少这些库,扫描器仍将以纯文本输出运行。
## 用法
双击脚本或 EXE 将打开一个交互式菜单,而不是立即关闭。
```
python main.py --help
python main.py scan 192.168.1.15
python main.py scan 192.168.1.0/24 --html reports\scan.html
python main.py ping 192.168.1.10-30
python main.py tcp 192.168.1.15 --ports 22,80,443,3389
python main.py udp 192.168.1.15 --ports 53,123,161 --timeout 2
python main.py banner 192.168.1.15 --ports 22,80,443
python main.py os 192.168.1.15
python main.py report reports\latest.html
```
## 目标
支持的目标格式:
- 单个 IP:`192.168.1.15`
- CIDR 子网:`192.168.1.0/24`
- IP 范围:`192.168.1.10-192.168.1.50`
- 短 IPv4 范围:`192.168.1.10-50`
## 端口
支持的端口格式:
- 常用/热门端口:`--ports top`
- 单个端口:`--ports 443`
- 自定义列表:`--ports 22,80,443`
- 范围:`--ports 1-1024`
- 混合格式:`--ports 22,80,443,8000-8100`
## 配置
配置是可选的,可通过 `--config` 加载。
```
{
"timeout": 1.0,
"threads": 256,
"max_workers": 512,
"common_tcp_ports": [21, 22, 80, 443, 3389],
"common_udp_ports": [53, 67, 68, 123, 161],
"report_folder": "reports",
"color_theme": "dark",
"banner_timeout": 1.5,
"ping_timeout_ms": 1000
}
```
示例:
```
python main.py --config config.json scan 192.168.1.0/24
```
## 导出
每次扫描都会写入 `reports\last_scan.json`,以便稍后渲染报告。您也可以请求显式导出:
```
python main.py scan 192.168.1.0/24 --json reports\scan.json --csv reports\scan.csv --html reports\scan.html
python main.py report reports\latest.html
```
## 日志记录
```
python main.py --log-level DEBUG --log-file reports\networkmapper.log tcp 192.168.1.15 --ports 1-1024
```
支持的级别包括 `INFO`、`WARNING`、`ERROR` 和 `DEBUG`。
## 构建 EXE
安装 PyInstaller 并构建单个 Windows 可执行文件:
```
pip install pyinstaller
pyinstaller --onefile --console --name networkmapper main.py
.\dist\networkmapper.exe --help
```
## 注意事项
- TCP 扫描使用带有线程池的快速 connect scan。
- Ping 扫射和 OS 猜测使用异步子进程调用。
- UDP 扫描采用尽力而为策略,因为静默的 UDP 超时可能意味着流量被开放、过滤或丢弃。
- OS 检测是基于 TTL 的启发式方法,因此请将其视为线索而非确凿证据。
标签:Maven构建, Python, 插件系统, 数据统计, 无后门, 漏洞挖掘, 端口扫描, 网络发现, 网络安全, 逆向工具, 隐私保护