Quis-sum/PortScanner

GitHub: Quis-sum/PortScanner

一款用于探测网络主机开放端口和服务信息的扫描工具。

Stars: 0 | Forks: 0

# PortScanner 一个轻量级、无依赖的端口扫描工具,使用 Python 编写。支持定向扫描和全范围 TCP 扫描,具备自动主机名解析和结构化扫描摘要功能。旨在作为一个使用 Python `socket` 模块进行底层网络编程的实用演示。 ## 功能 - 扫描**单个端口**、**多个端口**或**所有 65,535 个端口** - 接受 **IP 地址**和**主机名**作为目标 - 自动进行**主机名解析**,在失败时优雅地回退至 `127.0.0.1` - 结构化的**扫描摘要**,包括目标、端口范围、开始时间、结束时间和开放端口数量 - 能妥善处理键盘中断和连接错误 ## 环境要求 - Python 3.x - 无外部依赖 —— 仅使用 Python 标准库(`socket`、`sys`、`re`、`time`、`datetime`) ## 用法 ### 语法 ``` python shittyPortScanner.py [TARGET] [PORT(S)] ``` 所有参数均为可选。如果省略,扫描器将以交互方式提示输入。 ### 示例 **交互模式:** ``` python shittyPortScanner.py ``` **默认扫描 —— 端口 1 至 1023:** ``` python shittyPortScanner.py 192.168.1.1 ``` *在提示输入端口时按 ENTER 键即可使用默认范围。* **扫描特定端口:** ``` python shittyPortScanner.py 192.168.1.1 22 80 443 ``` **全端口扫描 —— 端口 1 至 65535:** ``` python shittyPortScanner.py 192.168.1.1 -p- ``` **使用主机名扫描:** ``` python shittyPortScanner.py example.com 80 443 ``` ## 输出示例 ``` ============================================================ [+] TARGET: 192.168.1.1 [+] PORT(S): range(1, 1024) [+] TIME STARTED: 2026-03-15 10:22:01.483921 ============================================================ Scanning 192.168.1.1... This might take a while... Port 22 is open Port 80 is open ============================================================ [+] TIME FINISHED: 2026-03-15 10:22:14.201384 [+] NO of OPEN PORT(S): 2 ============================================================ ``` ## 技术说明 - 每次连接尝试都有 **1 秒的超时时间**。根据网络状况,扫描全端口范围可能需要几分钟。 - 如果主机名解析失败,扫描器将默认使用 `127.0.0.1`(localhost)并继续运行。 - 仅测试 **TCP** 连接(`SOCK_STREAM`)。UDP 端口不在此工具范围内。 ## 免责声明 本工具仅供**教育目的和经授权的使用**。未经明确许可扫描系统在您所在的司法管辖区可能属于违法行为。在运行此工具之前,请务必确保您有权扫描任何目标。 ## 作者 [Quis-sum](https://github.com/Quis-sum)
标签:Python, Socket编程, TCP/IP, 插件系统, 数据统计, 无后门, 端口扫描, 网络工具