0o-J0ta/Python_Port_Scanner
GitHub: 0o-J0ta/Python_Port_Scanner
一款基于 Python 多线程实现的 TCP 端口扫描 CLI 工具,用于快速发现目标主机的开放端口并导出 JSON 报告。
Stars: 0 | Forks: 0
# 🌐 Python 多线程 TCP 端口扫描器




欢迎使用 **多线程 TCP 端口扫描器**,这是一款使用 Python 从头开始开发的高性能命令行界面 (CLI) 工具。本项目的目标是快速高效地映射本地网络的攻击面,通过经典的连接方法 (*TCP Connect Scan*) 识别活动服务和开放的 TCP 端口。
此脚本展示了对底层网络通信 (Sockets)、并发和安全编程的扎实理解。
## 🎯 工程目标与项目使命
作为网络安全和网络领域的爱好者,这款工具旨在解决网络扫描的延迟问题。在大型范围内进行同步扫描(逐个端口扫描)可能需要几分钟时间;而本脚本通过并行并发克服了这一限制。
本项目重点展示了三个核心技术支柱:
1. **底层通信 (`socket`):** 与操作系统 API 交互,以启动经典的 TCP 3 次握手。
2. **安全并发 (`threading`):** 启动并行扫描例程,同时防止终端输出竞态条件。
3. **可用性工程 (`argparse` & `json`):** 设计简洁的 CLI 用户体验,并导出结构化结果以供自动化 pipeline 使用。
## 🚀 功能与代码架构
该脚本接受 IP 地址/主机名和自定义端口范围作为参数,为每个目标端口分派一个独立的 Thread。
* **智能并行:** Threads 同时执行 `connect_ex()` 方法,从而大幅减少总执行时间。
* **线程锁机制 (`threading.Lock`):** 为了防止多个 Threads 同时向终端写入内容(这会导致行内容混乱并破坏 UI),使用上下文管理器 (`with`) 强制执行了一个同步的 `print_lock` 块。
* **静默错误处理:** 使用 `pass` 捕获并静默处理每个端口的单个网络异常,从而保持终端输出整洁,并使其完全专注于活动主机。
* **优雅中断 (`KeyboardInterrupt`):** 捕获 `Ctrl+C` 信号以干净地关闭程序,而不会将原始的系统 stack traces 转储到用户控制台中。
* **产物生成 (JSON):** 自动导出包含目标元数据和已排序开放端口列表的结构化 `.json` 报告,以便进行后期处理。
## 🛠️ 技术栈与模块
该项目完全使用 Python 的标准库,这意味着它具有**零外部依赖**,并且可以在任何安装了 Python 3 的机器上原生运行:
* **`socket`**: 核心组件,用于建立网络通信通道。
* **`threading`**: 并发引擎,可将执行拆分为多个同时运行的 threads。
* **`argparse`**: 用于构建专业的 CLI 参数 (`--host`, `--start`, `--end`)。
* **`json`**: 处理最终技术报告的结构化序列化。
## 💻 如何使用
由于这是一款 CLI 工具,您必须通过终端传递所需参数来执行它:
```
Port_Scanner.py --host localhost --start 1 --end 1024
```
或者,如果您使用的是 Python launcher。
```
py Port_Scanner.py --host localhost --start 1 --end 1024
```
## 📚 支持文档
```
https://docs.python.org/3/library/socket.html
https://docs.python.org/3/library/argparse.html
```
# 🌐 Python 多线程 TCP 端口扫描器
## 🇺🇸 英文版




欢迎使用 **多线程 TCP 端口扫描器**,这是一款使用 Python 从头开始开发的高性能命令行界面 (CLI) 工具。本项目的目标是快速高效地映射本地网络的攻击面,通过经典的连接方法 (*TCP Connect Scan*) 识别活动服务和开放的 TCP 端口。
此脚本展示了对底层网络通信 (Sockets)、并发和安全编程的扎实理解。
## 🎯 工程目标与项目使命
作为网络安全和网络领域的爱好者,这款工具旨在解决网络扫描的延迟问题。在大型范围内进行同步扫描(逐个端口扫描)可能需要几分钟时间;而本脚本通过并行并发克服了这一限制。
本项目重点展示了三个核心技术支柱:
1. **底层通信 (`socket`):** 与操作系统 API 交互,以启动经典的 TCP 3 次握手。
2. **安全并发 (`threading`):** 启动并行扫描例程,同时防止终端输出竞态条件。
3. **可用性工程 (`argparse` & `json`):** 设计简洁的 CLI 用户体验,并导出结构化结果以供自动化 pipeline 使用。
## 🚀 功能与代码架构
该脚本接受 IP 地址/主机名和自定义端口范围作为参数,为每个目标端口分派一个独立的 Thread。
* **智能并行:** Threads 同时执行 `connect_ex()` 方法,从而大幅减少总执行时间。
* **线程锁机制 (`threading.Lock`):** 为了防止多个 Threads 同时向终端写入内容(这会导致行内容混乱并破坏 UI),使用上下文管理器 (`with`) 强制执行了一个同步的 `print_lock` 块。
* **静默错误处理:** 使用 `pass` 捕获并静默处理每个端口的单个网络异常,从而保持终端输出整洁,并使其完全专注于活动主机。
* **优雅中断 (`KeyboardInterrupt`):** 捕获 `Ctrl+C` 信号以干净地关闭程序,而不会将原始的系统 stack traces 转储到用户控制台中。
* **产物生成 (JSON):** 自动导出包含目标元数据和已排序开放端口列表的结构化 `.json` 报告,以便进行后期处理。
## 🛠️ 技术栈与模块
该项目完全使用 Python 的标准库,这意味着它具有**零外部依赖**,并且可以在任何安装了 Python 3 的机器上原生运行:
* **`socket`**: 核心组件,用于建立网络通信通道。
* **`threading`**: 并发引擎,可将执行拆分为多个同时运行的 threads。
* **`argparse`**: 用于构建专业的 CLI 参数 (`--host`, `--start`, `--end`)。
* **`json`**: 处理最终技术报告的结构化序列化。
## 💻 如何使用
由于这是一款 CLI 工具,您必须通过终端传递所需参数来执行它:
```
Port_Scanner.py --host localhost --start 1 --end 1024
```
或者,如果您使用的是 Python launcher。
```
py Port_Scanner.py --host localhost --start 1 --end 1024
```
## 📚 支持文档
```
https://docs.python.org/3/library/socket.html
https://docs.python.org/3/library/argparse.html
```
标签:Python, 插件系统, 数据统计, 无后门, 端口扫描, 网络安全, 网络资产测绘, 逆向工具, 隐私保护