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, 插件系统, 数据泄露防护, 数据统计, 文档结构分析, 无后门, 端口扫描, 网络安全, 网络探测, 逆向工具, 隐私保护, 面向对象编程