Vijayambade/Network-Port-Scanner-with-GUI

GitHub: Vijayambade/Network-Port-Scanner-with-GUI

一款零依赖的Python端口扫描工具,提供图形界面与命令行双模式,支持TCP/UDP扫描、服务识别与结果导出。

Stars: 0 | Forks: 0

# 🔍 带图形界面的网络端口扫描器 一款基于 Python 的网络安全工具,可扫描任意目标 IP、主机名或 CIDR 范围的 TCP 和 UDP 端口——具有使用 Tkinter 构建的深色终端风格图形用户界面。 ## ✨ 功能特性 - **TCP 与 UDP 扫描** — 单独或同时扫描两种协议 - **多线程** — 使用 `ThreadPoolExecutor` 进行并发扫描(支持 100+ 线程) - **Banner 抓取** — 识别开放 TCP 端口上的服务 Banner - **CIDR 范围支持** — 扫描整个子网(例如 `192.168.1.0/24`) - **常见服务检测** — 识别 60 多种知名服务(SSH, HTTP, MySQL, Redis 等) - **实时进度** — 扫描时显示实时进度条和控制台输出 - **颜色编码结果** — 开放(绿色)、已过滤(黄色)、关闭(暗淡)端口状态 - **导出** — 将结果保存为 JSON 或 CSV 以便报告 - **深色 GUI** — 专业的终端风格 Tkinter 界面 ## ⚙️ 系统要求 - Python 3.10 或更高版本 - 无需外部依赖包——仅使用 Python 标准库: - `socket`, `threading`, `concurrent.futures` - `tkinter`, `json`, `csv`, `ipaddress` ## 🖥️ 用法 ### 运行 GUI ``` python Scanner_GUI.py ``` ### 通过 CLI 运行 ``` python Scanner.py [options] ``` ## 🖱️ GUI 概览 | 区域 | 描述 | |----------------|--------------------------------------------------------| | **Target** | 输入 IP 地址、主机名或 CIDR 范围 | | **Ports** | `common` 扫描常用端口,或自定义如 `1-1024` | | **Protocol** | 选择 TCP、UDP 或两者 | | **Options** | 切换 Banner 抓取、显示关闭端口、设置超时 | | **Export** | 选择 JSON 和 CSV 文件的输出路径 | | **Console** | 带颜色编码状态的实时流输出 | | **Results** | 包含端口、协议、状态、服务、延迟、Banner 的表格 | ## 🔧 CLI 选项 | 标志 | 描述 | 默认值 | |---------------------|--------------------------------------------------|-----------| | `target` | 目标 IP、主机名或 CIDR 范围 | 必填 | | `-p, --ports` | 端口规格:`common`, `1-1024`, `22,80,443` | `common` | | `--tcp` | 启用 TCP 扫描 | 启用 | | `--udp` | 启用 UDP 扫描 | 禁用 | | `--banners` | 尝试抓取 Banner(仅限 TCP) | 关闭 | | `--closed` | 在输出中显示关闭的端口 | 关闭 | | `--timeout` | Socket 超时(秒) | `1.0` | | `--threads` | 线程池大小 | `100` | | `--export-json` | 将结果导出为 JSON 文件 | — | | `--export-csv` | 将结果导出为 CSV 文件 | — | | `-v, --verbose` | 详细输出 | 关闭 | ## 📤 导出格式 ### JSON ``` { "target": "45.33.32.156", "hostname": "scanme.nmap.org", "scan_start": "2026-04-02T10:00:00", "scan_end": "2026-04-02T10:00:01", "duration_sec": 1.02, "total_ports_scanned": 3, "open_ports": [22, 80], "results": [ { "port": 22, "protocol": "TCP", "state": "open", "service": "SSH", "banner": "", "latency_ms": 424.6 } ] } ``` ### CSV ``` target,hostname,port,protocol,state,service,banner,latency_ms 45.33.32.156,scanme.nmap.org,22,TCP,open,SSH,,424.6 45.33.32.156,scanme.nmap.org,80,TCP,open,HTTP,,410.4 ``` ## 🧰 使用技术 | 技术 | 用途 | |----------------------|--------------------------------------------------| | Python 3 | 核心语言 | | Tkinter | GUI 框架(内置) | | socket | TCP/UDP 端口探测与 Banner 抓取 | | ThreadPoolExecutor | 多线程并发扫描 | | ipaddress | CIDR 范围解析与主机枚举 | | json / csv | 结果导出 | ## 💡 示例 **扫描公网主机的常用端口:** ``` python Scanner.py scanme.nmap.org ``` **扫描特定端口:** ``` python Scanner.py 192.168.1.1 -p 22,80,443,8080 ``` **包含 UDP 和 Banner 抓取的完整扫描:** ``` python Scanner.py 10.0.0.1 -p 1-1024 --tcp --udp --banners ``` **导出结果:** ``` python Scanner.py example.com --export-json results.json --export-csv results.csv ``` **扫描子网:** ``` python Scanner.py 192.168.1.0/24 ``` ## 📄 许可证 本项目是 AICTE 实习计划(2026 年 3 月)的一部分开发完成的。 仅供教育用途。请勿扫描您不拥有或未获授权测试的网络。
标签:Banner抓取, CIDR支持, Dark-Mode, DNS查询工具, GitHub, Groq, GUI图形界面, Python, Qt框架, Socket编程, TCP扫描, Tkinter, 代码生成, 密码管理, 开源安全工具, 插件系统, 无后门, 服务器安全, 服务识别, 渗透测试工具, 漏洞扫描辅助, 端口扫描器, 网络安全, 逆向工具, 逆向工程平台, 隐私保护