MoussHack-LeCrack/simple-port-scanner

GitHub: MoussHack-LeCrack/simple-port-scanner

一个用纯 Python 标准库编写的轻量级 TCP 端口扫描器,专注于代码可读性和学习价值,支持端口扫描、服务识别和 banner 抓取。

Stars: 0 | Forks: 0

# simple-port-scanner ![image](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/b4e0f85b13060435.gif) 一个用 Python 编写的小型 TCP 端口扫描器。 其目标是作为一个简单的项目,代码可读性强且易于修改,用于学习 sockets、`argparse` 以及 JSON 输出的基础知识。 ## 功能特性 - 扫描单个目标 - 列表形式的端口:`22,80,443` - 范围形式的端口:`1-1024` - 显示开放的端口 - verbose 选项,同时显示关闭的端口 - 使用字典进行简单的服务检测 - 简单的 banner 抓取尝试 - 支持 JSON 输出 - 无任何外部依赖 ## 警告 此脚本只能在您的个人机器、实验环境中使用,或者在获得明确授权的情况下使用。 请勿扫描不属于您的机器。 ## 结构 ``` simple-port-scanner/ ├── README.md ├── .gitignore ├── LICENSE └── scanner.py ``` ## 安装 只需要 Python 3.11 或更高版本。 ``` cd simple-port-scanner ``` 无需安装任何库。 ## 使用方法 ``` python scanner.py --target scanme.nmap.org --ports 22,80,443 ``` 选项: - `--target`:要扫描的目标 - `--ports`:要扫描的端口 - `--timeout`:超时时间(秒) - `--json`:JSON 输出 - `--verbose`:同时显示关闭的端口 ## 示例 扫描 3 个端口: ``` python scanner.py --target scanme.nmap.org --ports 22,80,443 ``` 扫描一个范围: ``` python scanner.py --target 127.0.0.1 --ports 1-100 ``` 同时显示关闭的端口: ``` python scanner.py --target 127.0.0.1 --ports 22,80,443 --verbose ``` JSON 输出: ``` python scanner.py --target scanme.nmap.org --ports 22,80,443 --json ``` ## 工作原理 该脚本使用 `socket` 在每个端口上打开一个 TCP 连接。 如果连接成功,则该端口被视为开放。 接着,脚本会尝试读取一小段 banner。对于 HTTP,它会发送一个非常简单的 `HEAD` 请求。 服务的名称首先来自于一个已知端口字典,随后可能会根据 banner 进行调整。 ## 文本输出示例 ``` [OUVERT] 22/tcp - SSH [OUVERT] 80/tcp - HTTP banniere: HTTP/1.1 200 OK ``` ## JSON 输出示例 ``` { "target": "scanme.nmap.org", "results": [ { "port": 22, "state": "open", "service": "SSH", "banner": "SSH-2.0-OpenSSH" }, { "port": 80, "state": "open", "service": "HTTP", "banner": "HTTP/1.1 200 OK" } ] } ``` ## 局限性 - 无 UDP 扫描 - 无并行扫描 - 无高级检测 - 无法为 HTTPS banner 处理 TLS - 结果可能会因防火墙或网络环境的不同而有所差异 ## 改进建议 - 添加多线程 - 从文件读取目标列表 - 添加 CSV 输出 - 添加一些测试 ## 许可证 MIT。详见 `LICENSE`。
标签:API安全, argparse, Banner获取, DNS查询工具, DNS解析, IP扫描, JSON输出, Python, Socket编程, TCP协议, URL短链接分析, 开源项目, 插件系统, 攻击路径可视化, 无后门, 无外部依赖, 服务器安全, 服务探测, 端口扫描器, 网络安全, 网络安全学习, 逆向工具, 隐私保护, 黑客工具