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, 图形界面工具, 插件系统, 数据统计, 无后门, 端口扫描, 网络安全, 逆向工具, 隐私保护