bellatorsaleh/PortScannerPro
GitHub: bellatorsaleh/PortScannerPro
一款基于 Python 和 Tkinter 构建的 GUI 网络端口扫描与安全分析工具,提供多线程扫描、服务检测、风险评估及数据看板功能。
Stars: 1 | Forks: 0
# ◈ PortScannerPro
**高级网络端口扫描器与安全分析工具**
*期末项目 — 开源软件开发 (OSSD) · CLO4*
## 📌 项目描述
PortScannerPro 是一款功能齐全、基于 GUI 的网络端口扫描器,完全使用 Python 和 Tkinter 构建。它提供实时端口扫描、服务检测、Banner 抓取、风险评估、扫描历史管理和数据分析功能——所有这些都通过时尚的赛博风格暗色界面呈现。
## ✨ 功能
| 功能 | 描述 |
|---|---|
| **多线程扫描** | 使用 `ThreadPoolExecutor` 并发扫描数百个端口 |
| **服务检测** | 根据端口号识别 70 多种服务 |
| **Banner 抓取** | 捕获服务 Banner 以进行侦查 |
| **风险评估** | 将端口按严重 / 高 / 中 / 信息进行颜色标记 |
| **实时结果** | 在发现端口时实时显示结果 |
| **扫描历史** | 所有扫描均存储在 SQLite 中;可随时浏览和重放 |
| **数据看板** | KPI 卡片、柱状图、热门服务频次分析 |
| **导出为 CSV/JSON** | 一键导出扫描结果 |
| **保存的目标** | 保存经常扫描的主机以便快速访问 |
| **主机名解析** | 在扫描前将 DNS 名称解析为 IP |
| **动画启动画面** | 专业的启动加载动画 |
| **设置持久化** | 超时、线程和选项保存至 SQLite |
| **自定义端口范围** | 支持预设或手动输入范围 |
## 🖥️ 截图
```
[ Scan Tab ] [ History Tab ] [ Dashboard Tab ] [ Settings Tab ]
Live results Past scan sessions KPI cards + charts App config + targets
```
## 🛠️ 使用技术
| 类别 | 技术 |
|---|---|
| 语言 | Python 3.8+ |
| GUI 框架 | Tkinter (ttk + tk) |
| 数据库 | SQLite3 (内置) |
| 并发 | `concurrent.futures.ThreadPoolExecutor` |
| 网络 | `socket` (标准库) |
| 版本控制 | Git + GitHub |
**无需任何外部依赖!** 所有功能均使用 Python 的标准库实现。
## ⚙️ 安装与运行
### 前置条件
- Python 3.8 或更高版本
- 无需 pip 安装(均为标准库)
### 克隆与运行
```
git clone https://github.com/YOUR_USERNAME/PortScannerPro.git
cd PortScannerPro
python main.py
```
### 项目结构
```
PortScannerPro/
├── main.py # Entry point
├── README.md
├── requirements.txt
├── data/ # SQLite database (auto-created)
│ └── portscanner.db
├── assets/ # Screenshots / icons
└── modules/
├── __init__.py
├── database.py # SQLite data layer
├── scanner.py # Core scanning engine
├── splash_screen.py # Animated startup screen
├── main_window.py # Root window + theme
├── scan_tab.py # 🖥 Screen 1: Scanner
├── history_tab.py # 🖥 Screen 2: History
├── dashboard_tab.py # 🖥 Screen 3: Dashboard
└── settings_tab.py # 🖥 Screen 4: Settings
```
## 🗺️ 应用界面
### 界面 1 — 扫描器标签页
- 带有主机名解析的目标输入
- 端口预设选择器 + 自定义范围
- 扫描类型(TCP Connect、快速扫描、隐秘扫描)
- 实时 Treeview,实时显示开放端口
- 颜色标记的风险等级
- 进度条 + 统计数据(开放、已扫描、耗时)
- 导出为 CSV 和 JSON
### 界面 2 — 历史记录标签页
- 主从视图:扫描会话 → 开放端口
- 从历史记录中删除会话
- 查看过去扫描的 Banner 抓取结果
### 界面 3 — 数据看板标签页
- 4 个 KPI 卡片:总扫描数、开放端口数、目标数、平均耗时
- 活动表格(最近 20 次扫描)
| 前 8 名服务柱状图
- 每次会话的开放端口柱状图
### 界面 4 — 设置标签页
- 持久化默认超时时间、线程数、Banner 选项
- 保存的目标管理器(添加/删除主机)
- 关于信息
## 🌐 GitHub 工作流
- **分支策略:** `main` → 每个成员的功能分支
- **所有合并到 `main` 的操作均需通过 PR**
- **使用 Issues 进行任务跟踪**
### 分支
| 分支 | 所有者 | 功能 |
|---|---|---|
| `feature/scanner-core` | 成员 1 | 核心扫描引擎 |
| `feature/gui-main` | 成员 2 | 主窗口 + 扫描标签页 |
| `feature/history-dashboard` | 成员 3 | 历史记录 + 数据看板标签页 |
## 🔗 链接
- 代码仓库:`https://github.com/YOUR_USERNAME/PortScannerPro`
- Issues:`https://github.com/YOUR_USERNAME/PortScannerPro/issues`
- Pull Requests:`https://github.com/YOUR_USERNAME/PortScannerPro/pulls`
## ⚠️ 免责声明
本工具仅出于**教育目的**作为大学项目进行构建。
请仅扫描您拥有或获得明确书面测试授权的系统。
## 📄 许可证
MIT 许可证 — 开源。请参阅 `LICENSE` 文件。
标签:Python, Tkinter, 图形界面工具, 插件系统, 数据统计, 无后门, 端口扫描, 网络安全, 逆向工具, 隐私保护