Neecool/Syntecxhub_Project-1_TCP-Port-Scanner.
GitHub: Neecool/Syntecxhub_Project-1_TCP-Port-Scanner.
一个基于 Python 标准库构建的零依赖多线程 TCP 端口扫描器,用于网络安全基础学习与授权范围内的端口探测。
Stars: 0 | Forks: 1
# TCP 端口扫描器
## Syntecxhub 实习项目
学习 Python 中的 socket 编程、多线程和网络安全基础知识!
涵盖 TCP 连接扫描、并发线程、端口范围过滤和实时日志记录。
**技术栈:** Python(标准库:`socket`、`threading`、`argparse`、`logging`)
## 简介
本项目作为我在 **Syntecxhub 实习(第 1 周,项目 1)** 的一部分而开发,提供了 TCP 端口扫描器的实际实现。
它演示了如何建立网络连接、处理底层 socket 错误,以及如何使用基于线程的并发来大幅提升扫描速度。
该工具设计轻量、无依赖,并且对于初学者和安全爱好者来说都具有高度的可配置性。
## 功能
- **单个/多个主机扫描** – 扫描任何 IP 地址或域名。
- **灵活的端口选择** – 定义范围 (`1-1024`) 或列表 (`80,443,8080`)。
- **多线程架构** – 使用并发线程来加速扫描过程(线程限制可配置)。
- **全面的日志记录** – 将所有结果(开放/关闭/超时/错误)写入带有时间戳的日志文件 (`port_scan_results.log`)。
- **超时配置** – 调整连接超时以适应不同的网络条件。
- **优雅的异常处理** – 捕获 DNS 错误、拒绝连接和超时而不会导致崩溃。
- **用户友好的摘要** – 完成后打印开放端口和总体统计信息的清晰摘要。
## 使用的技术
- **Python 3.x**
- **标准库**:
- `socket` (核心网络通信)
- `threading` (并发)
- `argparse` (命令行界面)
- `logging` (调试和结果存储)
- `ipaddress` (验证)
*(零外部依赖!)*
## 如何运行该项目?
### 前置条件:
- 系统已安装 Python 3.6+。
- 具备基础的命令行知识。
### 设置与执行:
**1. 克隆代码库(或导航至项目文件夹):**
git clone https://github.com/neecool/Syntecxhub_Project-1_TCP-Port-Scanner.git
cd Syntecxhub_Project-1_TCP-Port-Scanner
**2. 运行扫描器(无需安装!):**
基础扫描(扫描 localhost 的默认端口 1-1024):
python port_scanner.py localhost
扫描特定 IP 地址:
python port_scanner.py 192.168.1.1
扫描特定范围的端口(例如 1 到 1000):
python port_scanner.py example.com -p 1-1000
仅扫描特定的常用端口:
python port_scanner.py scanme.nmap.org -p 22,80,443,8080
提高速度(更多线程)并自定义超时:
python port_scanner.py localhost -T 200 -t 2
查看详细输出(每个端口的详细日志):
python port_scanner.py localhost -v
## 道德免责声明
重要提示:此工具仅供教育、网络故障排除和授权的安全测试目的使用。
在大多数司法管辖区,扫描您不拥有或未获得明确书面测试许可的网络、基础设施或设备是非法的。
开发者、Syntecxhub 和贡献者对任何滥用本软件或由此造成的损坏概不负责。请负责任地使用,并仅限于您自己的系统(例如 localhost 或实验环境)。
## 主要收获(实习)
在 Syntecxhub 的第 1 周,构建这个项目帮助我理解了:
Socket 编程基础:如何使用 connect_ex() 在代码级别执行 TCP 握手。
并发与多线程:高效管理线程池以同时扫描数百个端口。
CLI 参数解析:使用 argparse 构建用户友好的命令行工具。
实时日志记录:日志记录对于调试和合规性的重要性。
异常处理:编写健壮的代码,优雅地处理网络超时、DNS 故障和拒绝连接。
## 开发者
Nikulkumar Suthar
Syntecxhub 实习生
## 致谢
感谢 Syntecxhub 提供这次宝贵的实习机会和具有挑战性的项目。
感谢 Python Software Foundation 维护了强大的标准库。
感谢开源社区持续的启发和学习资源。
标签:DNS查询工具, Python, Socket编程, 插件系统, 无后门, 端口扫描器, 网络安全, 网络工具, 逆向工具, 隐私保护