chandelankit662-eng/A-Port-Scanner-Tool

GitHub: chandelankit662-eng/A-Port-Scanner-Tool

一个纯 Python 标准库实现的快速多线程 TCP 端口扫描器,支持端口范围扫描、服务识别、Banner 抓取和 JSON 结果导出。

Stars: 0 | Forks: 0

# 端口扫描工具 一个使用 Python 编写的快速、多线程 TCP 端口扫描器。它可以扫描目标主机的指定端口范围(或列表),报告哪些端口处于开放状态,识别常见服务,并可选择抓取服务 banner。 ## 功能特性 - 多线程扫描(可配置线程数)以提升速度 - 支持单个端口、范围或逗号分隔的列表(`22,80,443` 或 `1-1024`) - 自动将主机名解析为 IP - 通过端口号识别知名服务 - 可选在开放端口上抓取 banner - 将结果导出为 JSON - 扫描期间的进度指示器 ## 环境要求 - Python 3.7+ - 无外部依赖(仅使用标准库) ## 用法 ``` # 扫描主机的默认范围 (1-1024) python port_scanner.py -t example.com # 扫描特定范围 python port_scanner.py -t 192.168.1.1 -p 1-65535 # 扫描特定 ports python port_scanner.py -t example.com -p 22,80,443,8080 # 增加 thread 数量以加快扫描速度 python port_scanner.py -t example.com -p 1-65535 --threads 300 # 抓取开放 ports 上的 service banners python port_scanner.py -t example.com -p 1-1024 --banner # 将结果保存到 JSON 文件 python port_scanner.py -t example.com -p 1-1024 -o results.json ``` ## 参数说明 | 参数 | 描述 | 默认值 | |------------------|---------------------------------------------------|-----------| | `-t, --target` | 目标主机名或 IP 地址(必填) | — | | `-p, --ports` | 扫描的端口:单个、范围或逗号分隔的列表 | `1-1024` | | `--threads` | 并发线程数 | `100` | | `--timeout` | Socket 超时时间(秒) | `1.0` | | `--banner` | 尝试在开放端口上抓取 banner | 关闭 | | `-o, --output` | 将结果保存为 JSON 的路径 | 无 | ## 输出示例 ``` [*] Target : example.com (93.184.216.34) [*] Ports : 1024 port(s) [1-1024] [*] Threads : 100 [*] Banner grab : off [*] Started at : 2026-07-14 10:23:36 -------------------------------------------------- [+] Found 2 open port(s): PORT SERVICE BANNER 80 HTTP - 443 HTTPS - [*] Scan completed in 3.42 seconds ``` ## 可能的扩展(适合作为第一个贡献!) - UDP 端口扫描 - OS 指纹识别 - 将结果导出为 CSV/HTML 报告 - 添加使用 SYN 扫描的 `--stealth` 模式(需要原生 socket / root) - GUI 或 Web 仪表盘前端 - 基于检测到的服务/版本集成 CVE 查询
标签:Homebrew安装, 服务器安全, 逆向工具