Harish6174/Port_scanner
GitHub: Harish6174/Port_scanner
一个轻量级的多线程 Python 端口扫描工具,支持服务横幅抓取和基础操作系统指纹识别,可用于授权的网络资产探测和安全审计。
Stars: 1 | Forks: 0
# 🔍 Python 端口扫描器
一个轻量级、多线程的端口扫描器,使用 Python 构建 — 灵感来自 Nmap。
作为网络安全学习作品集的一部分构建。
## 功能
- ⚡ 多线程 TCP 连接扫描(默认 100 线程)
- 🏷️ 服务和横幅检测
- 🖥️ 通过 ICMP TTL 进行操作系统指纹识别
- 📁 导出结果为 JSON 或 CSV
## 使用方法
```
# 扫描常见端口
python port_scanner.py scanme.nmap.org
# 扫描端口范围
python port_scanner.py 192.168.1.1 -p 1-1024
# 导出到 JSON
python port_scanner.py scanme.nmap.org --export json
```
## 选项
| 标志 | 描述 | 默认值 |
|------|-------------|---------|
| `-p` | 端口范围(`1-1024`、`80,443`、`common`) | `common` |
| `-t` | 每个端口的超时时间(秒) | `1.0` |
| `--threads` | 并行线程数 | `100` |
| `--export` | 导出格式:`json` 或 `csv` | 无 |
| `--output` | 输出文件名 | `scan_results.*` |
## 工作原理
1. **TCP 连接扫描** — 执行完整的三次握手来检查端口是否开放
2. **横幅抓取** — 读取服务的问候消息以识别版本
3. **操作系统指纹识别** — 分析 ICMP TTL 值来猜测操作系统
4. **多线程** — 使用 Python 的 `ThreadPoolExecutor` 并行扫描端口
## ⚠️ 法律免责声明
仅扫描您拥有或已获得明确授权的系统。
未经授权的端口扫描在您所在的司法管辖区可能违法。
## 技术栈
- Python 3.x
- `socket` — TCP 连接和原始 ICMP
- `concurrent.futures` — 多线程
- `argparse` — CLI 接口
- `json` / `csv` — 结果导出
标签:Banner抓取, DNS枚举, ICMP, Nmap, OS指纹识别, Python, Python3, Qt框架, Socket编程, TCP连接扫描, 主机安全, 并发编程, 数据泄露防护, 数据统计, 无后门, 服务识别, 端口扫描, 网络安全, 网络安全工具, 网络工具, 网络探测, 虚拟驱动器, 隐私保护