toiletsamurai/port-scanner
GitHub: toiletsamurai/port-scanner
这是一个仅使用Python标准库编写的快速并发TCP端口扫描器,用于高效发现网络开放端口。
Stars: 0 | Forks: 0
# 端口扫描器
一个用Python编写的快速、并发的TCP端口扫描器。而且我只用了标准库哦!
## 功能
- 支持可配置线程数的并发扫描
- 灵活的端口输入:支持单个、范围、逗号分隔或预设值
- 自动检测常见端口的服务名称
- 基本的服务Banner抓取(HTTP、FTP、SSH等)
- 清晰、彩色的CLI输出
- 零外部依赖
## 用法
```
# 扫描主机常用端口
python scanner.py scanme.nmap.org
# 扫描特定端口
python scanner.py 192.168.1.1 -p 22,80,443
# 扫描端口范围
python scanner.py example.com -p 1-1024
# 提高线程数以加速
python scanner.py 10.0.0.1 -p 1-65535 --threads 500
# 降低超时以加快扫描速度(慢速网络下准确度较低)
python scanner.py example.com --timeout 0.3
```
## 选项
| 标志 | 默认值 | 描述 |
|------|---------|-------------|
| `-p`, `--ports` | `common` | 要扫描的端口:`common`、`80`、`1-1024`、`22,80,443` |
| `-t`, `--threads` | `100` | 并发线程数 |
| `--timeout` | `1.0` | 每个端口的超时时间(秒) |
## 示例输出
```
───────────────────────────────────────────────────────
PORT SCANNER
───────────────────────────────────────────────────────
Target : scanme.nmap.org (45.33.32.156)
Ports : 17 to scan
Timeout : 1.0s per port
Started : 2024-01-15 14:32:01
───────────────────────────────────────────────────────
───────────────────────────────────────────────────────
2 open port(s) found:
[OPEN] 22/tcp SSH
[OPEN] 80/tcp HTTP ↳ Apache/2.4.7
───────────────────────────────────────────────────────
Done in 1.24s | 17 ports scanned
───────────────────────────────────────────────────────
```
## 要求
- Python 3.10+
- 无需外部包
## ⚠️ 法律声明
未经许可请勿进行此操作,这并不合法。
## 扩展想法
- [ ] UDP扫描
- [ ] 操作系统指纹识别
- [ ] JSON/CSV输出
- [ ] 从文件扫描多个主机
- [ ] 用于显示已关闭端口的 `--verbose` 标志
标签:banner抓取, TCP扫描, 云存储安全, 并发扫描, 插件系统, 数据统计, 服务器安全, 服务检测, 标准库, 端口扫描, 端口检测, 网络安全, 网络扫描, 逆向工具, 隐私保护, 零依赖