Prabhu007K/port-scanner
GitHub: Prabhu007K/port-scanner
一款基于 Flask 的多线程 TCP 端口扫描器,提供实时进度、服务检测、热力图可视化与结果导出,兼具教学与实用价值。
Stars: 0 | Forks: 0
# 自动化端口扫描器与服务检测工具
一款具有教育意义的 Flask 侦察工具,包含**关于页面**和**交互式扫描器**。支持多线程 TCP connect 扫描、实时流式进度、banner grabbing、服务检测、风险提示、UDP/DNS 演示以及可导出的结果。
## 在线演示
`https://prabhu007k-port-scanner.onrender.com`
## 这个可以部署在 Netlify 上吗?
**不行。** 与 SQLi 实验室一样,这是一个 **Python Flask 应用**,需要运行**服务端 socket 扫描**。Netlify 和 GitHub Pages 只能托管静态文件。请使用 **[Render](https://render.com)** 或 **[Railway](https://railway.app)**(免费版)。
## 功能
### 关于页面 (`/`)
- 什么是端口扫描及其工作原理
- Connect scan 与 SYN scan 的对比
- 法律/道德准则
- 架构图
- 部署平台说明
- **继续** → 扫描器
### 交互式扫描器 (`/scan`)
- **实时进度** — 流式 NDJSON、进度条、所用时间
- **扫描配置** — 常用、快速、Web、数据库、远程访问
- **自定义端口** — `443`、`22,80,443`、`8000-8100`
- **预设目标** — localhost、scanme.nmap.org
- **同意复选框** — 非演示目标必选
- **Connect 与 SYN** — 解释了 SYN;实现了 connect
- **优先 Ping 主机** — 可选的 ICMP 检查
- **UDP/53 DNS 探测** — 可选演示
- **可调超时** — 0.5–3 秒
- 每次扫描**最多 1024 个端口**(速率限制)
- **丰富的结果** — 协议、RTT、风险等级、banner
- **Banner 解析** — SSH、HTTP Server、FTP 提示
- **端口热力图** — 1–1024 网格可视化
- **导出** — JSON、CSV、复制表格
- **会话历史** — 最近 5 次扫描 (sessionStorage)
- 带有扫描线效果的终端风格 UI
## 技术栈
- Python 3, Flask
- `socket` — TCP connect + UDP DNS 探测
- `concurrent.futures` — 多线程扫描
- HTML, CSS, JavaScript (流式 fetch)
## 项目结构
```
├── app.py
├── run.py
├── requirements.txt
├── start.bat
├── templates/
│ ├── about.html
│ └── scan.html
├── static/
│ ├── css/style.css
│ ├── css/about.css
│ └── js/app.js
├── description.txt
└── README.md
```
## 本地运行
```
pip install -r requirements.txt
python run.py
```
- **http://localhost:5003** — 关于页面
- **http://localhost:5003/scan** — 扫描器
或者在 Windows 上双击 `start.bat`。
## 安全演示扫描
1. 打开 **http://localhost:5003/scan**
2. 目标:`127.0.0.1` 或 `scanme.nmap.org`
3. 配置:**Quick**
4. 点击 **Start scan**
## 部署在 Render 上(免费)
1. 将此文件夹推送到 GitHub。
2. **New → Web Service** → 连接仓库。
3. **Build:** `pip install -r requirements.txt`
4. **Start:** `gunicorn app:app --bind 0.0.0.0:$PORT`
5. **Instance:** Free
## 部署在 Railway 上
与 Render 相同 — 连接仓库,将 start 命令设置为 `gunicorn app:app --bind 0.0.0.0:$PORT`。
标签:Flask, Python, Qt框架, 多模态安全, 插件系统, 数据可视化, 数据统计, 无后门, 服务识别, 端口扫描, 逆向工具