msf234/port_scanner

GitHub: msf234/port_scanner

一个纯 Python 标准库实现的多线程 TCP 端口扫描器,支持服务识别和 banner 抓取,用于快速网络侦察。

Stars: 0 | Forks: 0

# 🔍 scanner.py 一个快速、多线程的 TCP 端口扫描器,支持服务检测和 banner 抓取——使用纯 Python 构建,无需任何外部依赖。 ## 功能 - **多线程扫描** — 可配置线程数以实现快速扫描 - **服务检测** — 根据端口号识别 40 多种常见服务 - **Banner 抓取** — 可选的服务 banner 检索 - **灵活的端口指定** — 支持范围 (`1-1000`)、列表 (`22,80,443`) 或前 100 个常用端口 - **清晰的 CLI 输出** — 带有扫描摘要的彩色结果 - **文件输出** — 将结果保存到文本文件 ## 用法 ``` # 扫描目标上的默认端口 (1-1024) python scanner.py 192.168.1.1 # 使用自定义范围扫描主机名 python scanner.py scanme.nmap.org -p 1-10000 # 通过 banner grabbing 扫描前 100 个常见端口 python scanner.py 10.0.0.1 --top-ports -b # 使用 200 个线程进行快速扫描,保存到文件 python scanner.py 192.168.1.1 -p 1-65535 -t 200 -o results.txt # 仅扫描特定端口 python scanner.py 192.168.1.1 -p 22,80,443,3306,8080 ``` ## 选项 | 标志 | 描述 | 默认值 | |------|-------------|---------| | `target` | IP 地址或主机名 | 必填 | | `-p`, `--ports` | 端口范围或列表 | `1-1024` | | `--top-ports` | 扫描前 100 个常用端口 | 关闭 | | `-t`, `--threads` | 并发线程数 | `100` | | `--timeout` | 连接超时时间(秒) | `1.0` | | `-b`, `--banners` | 抓取服务 banner | 关闭 | | `-o`, `--output` | 将结果保存到文件 | 关闭 | | `-q`, `--quiet` | 最少输出(仅显示端口) | 关闭 | ## 示例输出 ``` ============================================================ SCANNER.PY — Python Port Scanner ============================================================ Target : scanme.nmap.org (45.33.32.156) Ports : 1024 ports Threads : 100 Started : 2026-05-13 14:22:01 ============================================================ 22/tcp OPEN SSH 80/tcp OPEN HTTP 443/tcp OPEN HTTPS ============================================================ 3 open port(s) found in 4.87s ============================================================ ``` ## 环境要求 - Python 3.10+ - 无需外部库——仅使用标准库(`socket`、`threading`、`concurrent.futures`、`argparse`) ## 演示概念 - TCP socket 编程 - 使用 `ThreadPoolExecutor` 的多线程处理 - 使用 `threading.Lock` 的线程安全数据访问 - 使用 `argparse` 解析 CLI 参数 - 服务枚举和 banner 抓取 - 网络侦察基础知识 ## 法律声明 ## 作者 **Michael Fletez** 网络安全理学学士 — 北亚利桑那大学 [linkedin.com/in/michael-fletez-792299252](https://www.linkedin.com/in/michael-fletez-792299252/) | [github.com/msf234](https://github.com/msf234)
标签:Banner抓取, Python, Qt框架, Socket编程, TCP扫描器, 云存储安全, 多线程扫描, 开源安全工具, 插件系统, 攻击路径可视化, 数据统计, 无后门, 服务识别, 端口扫描, 系统独立性, 网络安全, 网络工具, 网络扫描, 轻量级工具, 逆向工具, 逆向工程平台, 隐私保护, 黑客工具