ahmetmguney/python-port-scanner
GitHub: ahmetmguney/python-port-scanner
PyPortScanner 是一个纯 Python 实现的多线程命令行 TCP 端口扫描器,通过高并发连接测试快速发现目标主机的开放端口。
Stars: 0 | Forks: 0
# PyPortScanner:多线程 CLI 端口扫描器
## 概述
PyPortScanner 是一个完全使用 Python 构建的轻量级、快速且多线程的命令行网络端口扫描器。它利用标准的 `socket` 库执行 TCP connect 扫描,并借助 `concurrent.futures` 执行高并发扫描,从而大幅缩短扫描时间。
开发此工具旨在展示对 TCP/IP 网络编程、并发编程以及命令行界面(CLI)工具开发的实际理解。
## 项目演进
本仓库包含该扫描器的三个版本,展示了其开发与优化的过程:
* **`port_scanner.py`:** 基础的顺序执行 TCP connect 扫描器。
* **`port_scanner_v2.py`:** 引入多线程以加快执行速度的中间版本。
* **`port_scanner_v3.py`:** 最终的生产版本,具有使用 `argparse` 的完全可控 CLI。
## 功能 (v3)
* **多线程扫描:** 使用可自定义的线程池快速扫描大段端口范围。
* **命令行界面(CLI):** 完全可通过终端参数进行控制。
* **超时优化:** 配置了连接超时参数,以防止在被过滤的端口上发生挂起。
* **简洁输出:** 仅报告成功建立的连接(开放端口)。
## 要求
* Python 3.x
* 无需任何外部依赖或第三方库。
## 用法
在终端中运行此工具。使用 `-h` 或 `--help` 参数查看可用选项。
```
# 查看帮助菜单
python port_scanner_v3.py -h
# 针对特定 IP 的基本扫描(默认端口 1-1024,100 个线程)
python port_scanner_v3.py -t 127.0.0.1
# 激进的扫描(例如,使用 200 个线程扫描端口 1 到 5000)
python port_scanner_v3.py -t 192.168.1.50 -s 1 -e 5000 -w 200
[*] Scanning target: 127.0.0.1
[*] Port Range: 1 - 1024
[*] Active Threads: 100
--------------------------------------------------
[+] Port 135 OPEN
[+] Port 445 OPEN
--------------------------------------------------
[*] Scan completed.
This tool is written for educational purposes and authorized network analysis only. Ensure you have explicit permission before scanning any network or device you do not own.
```
标签:Python, 云存储安全, 插件系统, 数据统计, 无后门, 端口扫描, 网络安全, 网络扫描, 逆向工具, 隐私保护