msf234/port_scanner
GitHub: msf234/port_scanner
一个纯 Python 标准库实现的多线程 TCP 端口扫描器,支持服务识别和 banner 抓取,用于快速网络侦察。
Stars: 0 | Forks: 0
# 🔍 scanner.py
一个快速、多线程的 TCP 端口扫描器,支持服务检测和 banner 抓取——使用纯 Python 构建,无需任何外部依赖。
## 功能
- **多线程扫描** — 可配置线程数以实现快速扫描
- **服务检测** — 根据端口号识别 40 多种常见服务
- **Banner 抓取** — 可选的服务 banner 检索
- **灵活的端口指定** — 支持范围 (`1-1000`)、列表 (`22,80,443`) 或前 100 个常用端口
- **清晰的 CLI 输出** — 带有扫描摘要的彩色结果
- **文件输出** — 将结果保存到文本文件
## 用法
```
# 扫描目标上的默认端口 (1-1024)
python scanner.py 192.168.1.1
# 使用自定义范围扫描主机名
python scanner.py scanme.nmap.org -p 1-10000
# 通过 banner grabbing 扫描前 100 个常见端口
python scanner.py 10.0.0.1 --top-ports -b
# 使用 200 个线程进行快速扫描,保存到文件
python scanner.py 192.168.1.1 -p 1-65535 -t 200 -o results.txt
# 仅扫描特定端口
python scanner.py 192.168.1.1 -p 22,80,443,3306,8080
```
## 选项
| 标志 | 描述 | 默认值 |
|------|-------------|---------|
| `target` | IP 地址或主机名 | 必填 |
| `-p`, `--ports` | 端口范围或列表 | `1-1024` |
| `--top-ports` | 扫描前 100 个常用端口 | 关闭 |
| `-t`, `--threads` | 并发线程数 | `100` |
| `--timeout` | 连接超时时间(秒) | `1.0` |
| `-b`, `--banners` | 抓取服务 banner | 关闭 |
| `-o`, `--output` | 将结果保存到文件 | 关闭 |
| `-q`, `--quiet` | 最少输出(仅显示端口) | 关闭 |
## 示例输出
```
============================================================
SCANNER.PY — Python Port Scanner
============================================================
Target : scanme.nmap.org (45.33.32.156)
Ports : 1024 ports
Threads : 100
Started : 2026-05-13 14:22:01
============================================================
22/tcp OPEN SSH
80/tcp OPEN HTTP
443/tcp OPEN HTTPS
============================================================
3 open port(s) found in 4.87s
============================================================
```
## 环境要求
- Python 3.10+
- 无需外部库——仅使用标准库(`socket`、`threading`、`concurrent.futures`、`argparse`)
## 演示概念
- TCP socket 编程
- 使用 `ThreadPoolExecutor` 的多线程处理
- 使用 `threading.Lock` 的线程安全数据访问
- 使用 `argparse` 解析 CLI 参数
- 服务枚举和 banner 抓取
- 网络侦察基础知识
## 法律声明
## 作者
**Michael Fletez**
网络安全理学学士 — 北亚利桑那大学
[linkedin.com/in/michael-fletez-792299252](https://www.linkedin.com/in/michael-fletez-792299252/) | [github.com/msf234](https://github.com/msf234)
标签:Banner抓取, Python, Qt框架, Socket编程, TCP扫描器, 云存储安全, 多线程扫描, 开源安全工具, 插件系统, 攻击路径可视化, 数据统计, 无后门, 服务识别, 端口扫描, 系统独立性, 网络安全, 网络工具, 网络扫描, 轻量级工具, 逆向工具, 逆向工程平台, 隐私保护, 黑客工具