umerfarooq427/Network-port-scanner
GitHub: umerfarooq427/Network-port-scanner
一个基于 Python 面向对象编程的命令行网络端口扫描器,能够扫描指定 IP 的端口开放状态并识别对应服务。
Stars: 0 | Forks: 0
# 📡 网络端口扫描器
这是一个使用 Python 构建并基于面向对象编程 (OOP) 原则的命令行网络端口扫描器。本项目是作为第二学期 OOP 课程的一部分制作的,与**网络安全**相关。
## 功能简介
- 扫描任何目标 IP 地址的开放和关闭端口
- 识别每个开放端口上运行的服务
- 快速扫描 — 快速扫描前 100 个端口
- 完整扫描 — 扫描从 1 到 1000 的所有端口
- 自定义扫描 — 用户自行选择端口范围
- 生成带有时间戳的清晰扫描报告
## 使用的 OOP 概念
| 概念 | 应用位置 |
|---|---|
| **类与对象** | 扫描的每个端口都成为一个 Port 对象 |
| **封装** | Socket 逻辑隐藏在 `_check_port()` 中 |
| **抽象** | 用户只需调用 `scanner.run()` — 复杂性被隐藏 |
| **继承** | `QuickScanner` 和 `FullScanner` 都继承自 `Scanner` |
## 项目结构
```
network-port-scanner/
├── main.py ← entry point, run this
├── scanner.py ← Scanner, QuickScanner, FullScanner
├── port.py ← Port class
├── report.py ← ScanReport class
└── service_identifier.py ← maps port numbers to service names
```
## 环境要求
- Python 3.x
- 无需 pip install — 所有库均为内置 ✅
## 运行说明
**步骤 1 — 克隆仓库**
```
git clone https://github.com/yourusername/network-port-scanner.git
```
**步骤 2 — 进入项目文件夹**
```
cd network-port-scanner
```
**步骤 3 — 运行项目**
```
python main.py
```
## 🖥️ 菜单选项
```
╔══════════════════════════════════════╗
║ 📡 NETWORK PORT SCANNER ║
╠══════════════════════════════════════╣
║ [1] Quick Scan (ports 1–100) ║
║ [2] Full Scan (ports 1–1000) ║
║ [3] Custom Scan (you pick range) ║
║ [4] Exit ║
╚══════════════════════════════════════╝
```
## 安全的扫描目标
| 目标 | 描述 |
|---|---|
| `127.0.0.1` | 您自己的电脑 — 最安全的选项 |
| `192.168.1.1` | 您的家庭 WiFi 路由器 |
| `scanme.nmap.org` | 专为合法扫描练习提供的服务器 |
## 示例输出
```
Scanning 127.0.0.1 (ports 1–100)...
══════════════════════════════════════
SCAN REPORT
══════════════════════════════════════
Target : 127.0.0.1
Time : 2024-05-26 14:32:01
Total : 100 ports scanned
──────────────────────────────────────
OPEN PORTS (3 found):
[OPEN] Port 22 → SSH
[OPEN] Port 80 → HTTP
[OPEN] Port 443 → HTTPS
──────────────────────────────────────
Open : 3
Closed : 97
══════════════════════════════════════
```
## 常见端口号
| 端口 | 服务 | 描述 |
|---|---|---|
| 21 | FTP | 文件传输 |
| 22 | SSH | 远程登录 |
| 25 | SMTP | 发送电子邮件 |
| 53 | DNS | 域名系统 |
| 80 | HTTP | 网站 |
| 443 | HTTPS | 安全网站 |
| 3306 | MySQL | 数据库 |
| 3389 | RDP | 远程桌面 |
## 法律警告
## 团队成员
| 姓名 | 角色 | 负责文件 |
|---|---|---|
| Umer farooq | 团队负责人 | main.py |
| Ayaan hassan | 开发者 | scanner.py |
| Matti ullah | 开发者 | port.py |
| Ather ahmed khan | 开发者 | report.py |
| Muhammad hanan ameer | 开发者 | service_identifier.py |
## 课程信息
- **科目** : 面向对象编程 (OOP)
- **语言** : Python 3
- **学期** : 第二学期
- **主题** : 网络安全
标签:Python, 插件系统, 数据泄露防护, 数据统计, 文档结构分析, 无后门, 端口扫描, 网络安全, 网络探测, 逆向工具, 隐私保护, 面向对象编程