EkVannaro/tcp-port-scanner
GitHub: EkVannaro/tcp-port-scanner
一个基于 Python 的 TCP 端口扫描器,通过 Socket 编程检测目标主机的开放端口和常见服务,并自动生成扫描报告。
Stars: 0 | Forks: 0
# TCP 端口扫描器
一个基于 Python 的 TCP 端口扫描器,可扫描目标主机在用户指定范围内的开放 TCP 端口。它可以将主机名解析为 IP 地址,识别常见服务,测量扫描耗时,并生成扫描报告。
开发这个项目是为了加深我对网络基础、Socket 编程、TCP/IP、DNS 解析以及 Python 的理解,同时打造一款实用的网络安全工具。
这是我的第一个网络安全作品集项目,旨在通过 Python 深入理解网络侦察的基础知识。
## 功能
- 使用主机名或 IP 地址扫描目标
- 将主机名解析为 IP 地址
- 扫描自定义的 TCP 端口范围(0–65535)
- 检测开放的 TCP 端口
- 识别常见服务(SSH、HTTP、HTTPS、FTP 等)
- 处理无效的用户输入
- 处理 DNS 解析错误
- 通过 `Ctrl + C` 优雅退出
- 测量扫描耗时
- 将扫描结果保存到 `scan_results.txt`
## 技术栈
- Python 3
- Socket 编程
- TCP/IP 网络
- DNS 解析
- 文件处理
- 异常处理
## 工作原理
1. 用户输入主机名或 IP 地址。
2. 使用 DNS 将主机名解析为 IP 地址。
3. 用户指定起始和结束端口。
4. 扫描器尝试与所选范围内的每个端口建立 TCP 连接。
5. 如果成功建立 TCP 连接,该端口将被报告为 **OPEN**,表示有服务正在该端口上监听。
6. 扫描结果将显示在终端中,并保存到报告文件中。
## 环境要求
- Python 3.x
## 用法
运行程序:
```
python scanner.py
```
然后输入:
- 目标主机名或 IP 地址
- 起始端口
- 结束端口
## 示例
### 输入
```
Enter a host name: google.com
Enter the initial port: 1
Enter the ending port: 1024
```
### 输出
```
Target: google.com
IP Address: 142.xxx.xxx.xxx
Time started: 2026-07-24 18:42:19
Scanning...
--------------------
[+] Port 443: OPEN - HTTPS
Scan completed in 2.31 seconds.
Results saved to scan_results.txt
```
## 仓库结构
```
tcp-port-scanner/
│
├── scanner.py
├── README.md
└── scan_results.txt
```
## 报告示例
扫描器会自动生成:
```
scan_results.txt
```
示例:
```
TCP Port Scanner Report
==============================
Target: google.com
IP Address: 142.xxx.xxx.xxx
Time Started: 2026-07-24 18:42:19
[+] Port 443: OPEN - HTTPS
Open Ports Found: 1
Scan Started: 18:42:19
Scan Ended: 18:42:21
Scan completed in 2.31 seconds.
```
## 展现的技能
- Python 编程
- Socket 编程
- TCP/IP 网络
- DNS 解析
- 输入验证
- 异常处理
- 文件处理
- 技术文档编写
- Git & GitHub
## 学到了什么
这个项目帮助我掌握了:
- TCP/IP 网络
- TCP 三次握手
- IP 地址和端口
- Python 中的 Socket 编程
- DNS 主机名解析
- TCP 端口扫描基础
- 异常处理
- 文件处理
- 测量程序执行时间
- 编写更简洁、更易于维护的 Python 代码
## 未来改进
计划的改进包括:
- 多线程扫描以提升性能
- Banner 抓取
- 服务版本检测
- UDP 端口扫描
- 命令行参数
- 将结果导出为 CSV 或 JSON
## 免责声明
本项目仅出于教育目的开发。
请仅扫描您拥有或获得明确授权进行测试的系统。
## 作者
**Vannaro Ek**
一名对网络、Python 和网络安全充满热情的网络安全专业学生。目前正在通过动手实践项目来增强实操技能,并构建专业的网络安全作品集。
标签:Python, Socket编程, TCP/IP, 并发处理, 插件系统, 数据统计, 无后门, 端口扫描, 网络安全, 逆向工具, 隐私保护