Rafaaaaa777/Port-scanner-py
GitHub: Rafaaaaa777/Port-scanner-py
一款基于 Python 原生 socket 的 TCP 端口扫描器,提供图形界面、多线程扫描及 PDF 报告生成功能。
Stars: 0 | Forks: 0
# 使用 Python Socket 的 TCP 扫描器
使用 Python 开发的 TCP 端口扫描器,仅使用原生 socket,具有 Tkinter 图形界面、多线程、banner grabbing 以及 PDF 报告生成功能。
## 🚀 功能
✔ 使用 `socket` 的 TCP 扫描器
✔ 使用 Tkinter 的简单图形界面
✔ 端口范围扫描
✔ 多线程以提升速度
✔ 检测开放/关闭的端口
✔ 识别端口的默认服务
✔ Banner grabbing
✔ 导出 TXT/CSV
✔ 生成 PDF 报告
✔ 可配置 Timeout
✔ 显示总扫描时间
## 🛠 使用的技术
- Python 3
- Socket
- Tkinter
- concurrent.futures
- ReportLab
## 📁 项目结构
```
scanner-portas/
│
├── port-scanner.py
├── README.md
└── requirements.txt
```
## ⚙ 安装
克隆仓库:
```
git clone https://github.com/SEU-USUARIO/scanner-portas.git
```
进入文件夹:
```
cd scanner-portas
```
安装依赖项:
```
pip install reportlab
```
## ▶ 运行
运行程序:
```
python port-scanner.py
```
## 🌐 工作原理
扫描器使用以下方式进行 TCP 连接:
```
socket.connect_ex()
```
在连接过程中会发生 TCP Three-Way Handshake 过程:
```
SYN → SYN/ACK → ACK
```
如果连接被接受:
- 该端口被视为开放
- 识别服务
- 可以捕获 banner
## 🖻 界面
系统具有:
- 目标 IP 字段
- 起始端口
- 结束端口
- 扫描按钮
- 导出 TXT/CSV
- 生成 PDF
- 实时表格
## 📄 PDF 报告
程序会自动生成包含以下内容的报告:
- 扫描的 IP
- 开放的端口
- 识别出的服务
- 捕获的 banner
## 💡 使用示例
```
IP: 172.16.32.53
Porta Inicial: 1
Porta Final: 1000
```
预期结果:
```
22/tcp ABERTA ssh
80/tcp ABERTA http
3306/tcp ABERTA mysql
```
## 🎯 学术目的
本项目为教育目的而开发,用于学习以下内容:
- 计算机网络
- Cybersecurity
- 服务枚举
- TCP/IP
- Python 编程
## 👨💻 作者
Rafael Benjamin Aquino Silva
## 📜 许可证
用于教育目的的项目。
标签:Banner Grabbing, DNS查询工具, Python, 插件系统, 无后门, 服务器安全, 桌面应用, 端口扫描器, 网络工具, 逆向工具