Bikeshsutihar/Port-TCP-scanner-python

GitHub: Bikeshsutihar/Port-TCP-scanner-python

一个用 Python 编写的多线程 TCP 端口扫描器,支持自定义端口范围扫描、服务识别与 banner 获取,适用于网络侦察与安全学习。

Stars: 1 | Forks: 0

# 🔍 高级 TCP 端口扫描器 一个使用 Python 编写的多线程 TCP 端口扫描器。解析目标 域名或 IP,并发扫描可配置的端口范围,识别 已知服务,并可选地获取服务 banner 以进行指纹识别。 ## ✨ 功能 - 使用 `ThreadPoolExecutor` 进行多线程扫描,以实现快速获取结果 - 自定义端口范围扫描 (`-s` / `-e`) - 可配置的 socket 超时 (`--timeout`) - 已知端口的服务名称查询 (HTTP, SSH, FTP 等) - 可选的 banner 获取 (`-b`) 以识别正在运行的服务 - 带时间戳的扫描开始/结束时间,以及经过排序、易于阅读的输出结果 ## 🛠️ 构建技术 - Python 3 - `socket` (标准库) - `concurrent.futures.ThreadPoolExecutor` 用于多线程处理 - `argparse` 用于 CLI 解析 ## 🚀 用法 ``` python3 scanner.py -s -e -t --timeout -b ``` | 标志 | 描述 | 默认值 | |------|-------------|---------| | `target` | 目标域名或 IP 地址 | 必填 | | `-s`, `--start` | 起始端口 | 1 | | `-e`, `--end` | 结束端口 | 1024 | | `-t`, `--threads` | 线程数 | 100 | | `--timeout` | socket 超时时间 (秒) | 1.0 | | `-b`, `--banner` | 启用 banner 获取 | 禁用 | ### 示例 ``` python3 scanner.py example.com -s 1 -e 1024 -t 100 --timeout 1.5 -b ``` ### 输出示例 目标: example.com 解析 IP: 93.184.216.34 端口: 1-1024 线程数: 100 开始时间: 2026-07-30 14:02:11 发现的开放端口: [+] 端口 80 开放 服务: http [+] 端口 443 开放 服务: https Banner: 无 banner 扫描完成。 结束时间: 2026-07-30 14:02:14 ## ⚠️ 免责声明 此工具仅供**教育目的和授权的网络 测试使用**。请仅扫描您拥有或获得明确测试 权限的系统。未经授权的端口扫描可能会 违反您所在司法管辖区的计算机滥用法律。 ## 📌 原因 旨在探索并发 socket 编程和网络侦察 基础知识 —— 这是一个从零开始的实用项目,用于学习端口 扫描器的底层工作原理。
标签:Banner抓取, Python, 插件系统, 数据统计, 无后门, 端口扫描