DevMytho/port-scanner

GitHub: DevMytho/port-scanner

基于 Python 和 Nmap 的跨平台图形化端口扫描器,帮助用户以终端风格界面快速探测目标开放端口及服务信息。

Stars: 3 | Forks: 0

# 端口扫描器 一个使用 Python、Tkinter 和 Nmap 构建的跨平台网络端口扫描器——具有深色终端风格 GUI、自动操作系统检测以及自动依赖安装功能。 ## 📸 预览 ![端口扫描器 GUI](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/0924a1b853144138.png) ## ✨ 功能 - 🖥️ **跨平台** — 适用于 Linux、Windows 和 macOS - ⚙️ **自动依赖安装** — 检测您的操作系统并自动安装 nmap - 🎨 **深色终端 UI** — 颜色编码输出(绿色 = 开放,红色 = 错误,暗色 = 关闭) - 🧵 **线程池扫描** — 快速并发扫描且不会崩溃 - 📄 **导出结果** — 将扫描输出保存到 `scan_results.txt` - 🔍 **Banner 抓取** — 通过 nmap 识别在开放端口上运行的服务 ## 🖥️ 支持的平台 | 操作系统 | 自动安装 nmap | 已测试 | |---------|-----------------------|--------| | Linux | ✅ 通过 `apt` | ✅ | | macOS | ✅ 通过 `brew` | ✅ | | Windows | ✅ 通过 `winget` | ✅ | ## 🚀 快速开始 ### 1. 克隆仓库 ``` git clone https://github.com/DevMytho/port-scanner.git cd port-scanner ``` ### 2. 创建虚拟环境 (推荐) ``` python3 -m venv scanner-env source scanner-env/bin/activate # Linux / macOS scanner-env\Scripts\activate # Windows ``` ### 3. 安装 Python 依赖 ``` pip install python-nmap ``` ### 4. 安装 tkinter (仅限 Linux) ``` sudo apt install python3-tk ``` ### 5. 运行扫描器 ``` python3 scanner.py ``` ## 🛠️ 使用方法 | 字段 | 描述 | |-------------|------------------------------------------| | 目标 IP | 要扫描的 IP 地址 (例如 `192.168.1.1`) | | 起始端口 | 范围中的第一个端口 (默认: `1`) | | 结束端口 | 范围中的最后一个端口 (默认: `1024`) | ### 输出颜色 | 颜色 | 含义 | |--------|----------------------| | 🟢 绿色 | 端口开放 | | ⬛ 暗色 | 端口关闭 | | 🔴 红色 | 发生错误 | | 🔵 蓝色 | 信息 / 状态 | | 🟡 黄色 | 警告 | ## 📁 项目结构 ``` port-scanner/ ├── scanner.py # Main application ├── scan_results.txt # Auto-generated scan output └── README.md ``` ## ⚙️ 工作原理 ``` User inputs IP + port range ↓ ThreadPoolExecutor spins up to 100 workers ↓ Each worker tries socket.connect_ex() on a port ↓ Open ports → nmap banner grab for service info ↓ Results posted to gui_queue (thread-safe) ↓ Main thread reads queue every 50ms via root.after() ↓ GUI updates with color-coded output ``` ## 🔧 环境要求 - Python 3.8+ - `python-nmap` (pip) - `tkinter` (Linux 上的系统软件包) - `nmap` 二进制文件 (首次运行时自动安装) ## ⚠️ 免责声明 此工具仅用于**教育目的和授权的网络测试**。 请勿扫描您不拥有或未获得明确测试许可的网络或系统。 作者对滥用行为不承担任何责任。 ## 📺 观看构建过程 此项目是在 YouTube 上现场构建的——包含跨平台版本。 **[▶ 在 MeowCode 上观看](https://youtu.be/r_PB6_E9E8Q)** ## 📄 许可证 MIT 许可证 — 可免费使用、修改和分发。

由 MeowCode 用 🐱 制作

标签:Banner抓取, CTI, DNS查询工具, GUI, linux, macos, Nmap, Python, Qt框架, T1155, Tkinter, windows, 云存储安全, 依赖自动安装, 图形用户界面, 多线程扫描, 安全存储, 导出扫描结果, 插件系统, 操作系统检测, 无后门, 无线安全, 暗色主题, 服务器安全, 服务识别, 端口扫描器, 系统独立性, 终端风格, 网络安全, 网络扫描, 虚拟驱动器, 逆向工具, 隐私保护