gbvk312/port-scanner-cli
GitHub: gbvk312/port-scanner-cli
一个轻量级的多线程 TCP 端口扫描器 CLI,用于快速网络诊断与资产梳理。
Stars: 0 | Forks: 0
# 🔍 port-scanner-cli
[](https://python.org)
[](LICENSE)
[](#testing)
[](#)
**一个轻量级的多线程 TCP 端口扫描器 CLI,用于快速网络诊断。**
## ✨ 功能
- ⚡ **多线程** — 可配置线程池的并发扫描
- 🎯 **灵活目标** — 单端口、范围、逗号分隔列表或预设
- 🏷️ **服务识别** — 识别 25+ 种常见服务(HTTP、SSH、MySQL 等)
- 📡 **横幅抓取** — 可选的服务横幅捕获
- 📊 **双重输出** — 简洁表格视图或机器可读的 JSON
- ⏱️ **响应计时** — 每个端口的响应时间测量
- 🔧 **预设** — 内置端口集合:`common`、`web`、`database`、`top100`、`top1000`
- 📦 **零依赖** — 仅使用 Python 标准库
## 📋 要求
- Python 3.8+
- 无外部依赖
## 🚀 安装
```
git clone https://github.com/gbvk312/port-scanner-cli.git
cd port-scanner-cli
pip install -e .
```
## 📖 用法
### 快速扫描
```
# 扫描主机常用端口
portscan example.com
# 扫描特定端口
portscan 192.168.1.1 -p 22,80,443
# 扫描端口范围
portscan 10.0.0.1 -p 1-1024
```
### 使用预设
```
# Web 服务器端口
portscan example.com -p web
# 数据库端口
portscan db.internal -p database
# 前 1000 端口
portscan target.com -p top1000
```
### 高级选项
```
# 横幅抓取
portscan example.com -p 22,80,443 --banner
# 用于脚本的 JSON 输出
portscan example.com --json
# 带进度的详细模式
portscan example.com -p top1000 -v
# 自定义超时和线程
portscan 10.0.0.1 -p 1-65535 -t 0.5 --threads 100
# 也显示关闭的端口
portscan localhost -p 80-90 --show-closed
```
### 示例输出
```
Scan Report for example.com (93.184.216.34)
──────────────────────────────────────────────────
PORT STATE SERVICE RESPONSE
──────────────────────────────────────────────────
80 open HTTP 12.34ms
443 open HTTPS 15.67ms
──────────────────────────────────────────────────
2 open / 27 scanned in 1.23s
```
### JSON 输出
```
portscan example.com -p 80,443 --json
```
```
{
"host": "example.com",
"ip": "93.184.216.34",
"scan_time_seconds": 1.23,
"total_scanned": 2,
"open_count": 2,
"open_ports": [
{
"port": 80,
"service": "HTTP",
"response_ms": 12.34,
"banner": null
}
]
}
```
## 🧪 测试
```
pip install -e .
python -m pytest tests/ -v
```
## 📁 项目结构
```
port-scanner-cli/
├── src/
│ └── portscanner/
│ ├── __init__.py
│ ├── scanner.py # Core scanning logic
│ └── cli.py # CLI interface
├── tests/
│ ├── __init__.py
│ └── test_scanner.py # Unit tests
├── setup.py
├── requirements.txt
├── LICENSE
├── .gitignore
└── README.md
```
## ⚠️ 免责声明
本工具仅供 **授权网络诊断** 使用。请始终确保你拥有扫描目标主机的权限。未经授权的端口扫描可能违反法律与服务条款。
## 🗺️ 路线图
- [ ] UDP 端口扫描
- [ ] 操作系统指纹识别
- [ ] 输出为 CSV/HTML 报告
- [ ] 扫描配置文件的保存与加载
- [ ] 网络范围扫描(CIDR 表示法)
- [ ] 与 Nmap 脚本集成
## 📄 许可证
本项目采用 MIT 许可证 — 详情见 [LICENSE](LICENSE) 文件。
由 ❤️ 构建 — Bhanu Vamsi Krishna
标签:API安全, JSON输出, LangChain, Python, Python 3.8, Qt框架, TCP扫描, TOP端口, Web端口, 内置预设, 可配置线程池, 响应延迟, 常见端口, 并发扫描, 开源, 情报分析, 数据库端口, 数据统计, 无后门, 服务识别, 横幅抓取, 端口列表, 端口扫描, 端口范围, 网络安全, 网络诊断, 表格输出, 轻量级, 运维诊断, 逆向工具, 隐私保护, 零依赖