DevMytho/port-scanner
GitHub: DevMytho/port-scanner
基于 Python 和 Nmap 的跨平台图形化端口扫描器,帮助用户以终端风格界面快速探测目标开放端口及服务信息。
Stars: 3 | Forks: 0
# 端口扫描器
一个使用 Python、Tkinter 和 Nmap 构建的跨平台网络端口扫描器——具有深色终端风格 GUI、自动操作系统检测以及自动依赖安装功能。
## 📸 预览

## ✨ 功能
- 🖥️ **跨平台** — 适用于 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, 云存储安全, 依赖自动安装, 图形用户界面, 多线程扫描, 安全存储, 导出扫描结果, 插件系统, 操作系统检测, 无后门, 无线安全, 暗色主题, 服务器安全, 服务识别, 端口扫描器, 系统独立性, 终端风格, 网络安全, 网络扫描, 虚拟驱动器, 逆向工具, 隐私保护