0o-J0ta/Python_Port_Scanner

GitHub: 0o-J0ta/Python_Port_Scanner

一款基于 Python 多线程实现的 TCP 端口扫描 CLI 工具,用于快速发现目标主机的开放端口并导出 JSON 报告。

Stars: 0 | Forks: 0

# 🌐 Python 多线程 TCP 端口扫描器

🇺🇸 English🇧🇷 Português

![Python](https://img.shields.io/badge/Python-3.10+-blue.svg) ![Security](https://img.shields.io/badge/Focus-Network%20Security%20%7C%20Reconnaissance-red.svg) ![Concurrency](https://img.shields.io/badge/Engine-Multithreading%20%7C%20Thread%20Lock-teal.svg) ![License](https://img.shields.io/badge/License-MIT-green.svg) 欢迎使用 **多线程 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 端口扫描器 ## 🇺🇸 英文版 ![Python](https://img.shields.io/badge/Python-3.10+-blue.svg) ![Security](https://img.shields.io/badge/Focus-Network%20Security%20%7C%20Reconnaissance-red.svg) ![Concurrency](https://img.shields.io/badge/Engine-Multithreading%20%7C%20Thread%20Lock-teal.svg) ![License](https://img.shields.io/badge/License-MIT-green.svg) 欢迎使用 **多线程 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, 插件系统, 数据统计, 无后门, 端口扫描, 网络安全, 网络资产测绘, 逆向工具, 隐私保护