rheasushanth/port-scanner

GitHub: rheasushanth/port-scanner

一款轻量级多协议端口扫描器,支持TCP/UDP/SYN三种扫描模式,具备服务识别、Banner抓取和分布式扫描能力。

Stars: 0 | Forks: 0

# 🔍 自定义端口扫描器 一款快速、多协议的 Python 端口扫描器,具有简洁的 GUI — 支持针对单个 IP、CIDR 范围和 IP 破折号范围进行 TCP、UDP 和 SYN 扫描。 ## ✨ 功能特性 - **三种扫描模式** — TCP connect 扫描、UDP 扫描和原始 SYN 扫描 - **异步 TCP 扫描** — 通过 `asyncio` 进行并发扫描以实现高吞吐量 - **多主机支持** — 扫描单个 IP、CIDR 块 (`192.168.1.0/24`) 或破折号范围 (`192.168.1.1-192.168.1.10`) - **Banner 抓取** — 从开放端口提取服务 banner 和版本信息 - **服务检测** — 将端口号映射到已知的服务名称 - **Tkinter GUI** — 结果显示在可排序的表格中,包含主机、端口、服务、版本和状态列 - **分布式架构** — 父/子节点设计,用于多节点扫描协调 ## 📁 项目结构 ``` port-scanner/ ├── gui_app.py # Tkinter GUI — main entry point ├── scanner_core.py # Core async TCP, UDP, and SYN scanning logic ├── banner_grabber.py # Connects to open ports and extracts service banners ├── service_map.py # Maps port numbers to service names ├── parent_node.py # Orchestrates distributed scanning across child nodes └── child_node.py # Worker node that receives and executes scan jobs ``` ## 🚀 快速开始 ### 前置条件 - Python 3.9+ - `tkinter`(通常随 Python 一起提供;在 Linux 上:`sudo apt install python3-tk`) - 不需要第三方包 — 仅使用标准库 ### 安装 ``` git clone https://github.com/rheasushanth/port-scanner.git cd port-scanner ``` ### 运行 GUI ``` python gui_app.py ``` ### 从代码运行扫描 ``` import asyncio from scanner_core import scan_multiple_hosts results = asyncio.run( scan_multiple_hosts("192.168.1.0/24", start_port=1, end_port=1024, scan_type="tcp") ) for host, ports in results.items(): print(f"{host}: {ports}") ``` ## 🖥️ GUI 用法 1. 输入目标 — 单个 IP、CIDR 范围或破折号范围 2. 设置起始和结束端口号 3. 选择扫描类型:**TCP**、**UDP** 或 **SYN** 4. 点击 **Start Scan** 结果显示在表格中,展示每个开放端口的主机、端口号、检测到的服务、版本 banner 和状态。 ## 🔬 扫描类型 | Type | Description | Notes | |------|-------------|-------| | **TCP** | 完全异步 connect 扫描 | 快速;无需提升权限即可运行 | | **UDP** | 发送探测包并等待响应 | 较慢;存在 open/filtered 模糊性 | | **SYN** | 原始套接字半开扫描 | 在 Linux 上需要 `sudo` / root 权限 | ## 🌐 IP 范围格式 | Format | Example | |--------|---------| | 单个 IP | `192.168.1.5` | | CIDR | `192.168.1.0/24` | | 破折号范围 | `192.168.1.1-192.168.1.50` | ## ⚠️ 法律免责声明 此工具旨在用于您拥有或拥有明确测试权限的网络和系统。未经授权的端口扫描在您所在的司法管辖区可能是非法的。请负责任地使用。 ## 📄 许可证 本项目是开源的。有关详细信息,请参阅 [LICENSE](LICENSE)。
标签:Asyncio, Banner抓取, DNS枚举, GitHub, GUI应用, IOC 共享, IP范围扫描, Python, Qt框架, SYN扫描, TCP扫描, Tkinter, 分布式扫描, 域名解析, 密码管理, 开源安全工具, 异步扫描, 插件系统, 数据统计, 无后门, 服务器安全, 服务识别, 漏洞扫描辅助, 端口扫描, 网络安全工具, 计算机取证, 轻量级扫描器, 逆向工具, 逆向工程平台, 防御绕过