rayan76140/netmonitor-dashboard

GitHub: rayan76140/netmonitor-dashboard

一个由Python扫描器和PHP仪表板构建的网络监控工具,支持ICMP ping扫描、TCP端口扫描及数据持久化展示。

Stars: 0 | Forks: 0

# NetMonitor Dashboard 一个使用 **Python**(扫描器 + REST API)和 **PHP**(Web 仪表板)构建的网络监控工具。 作为 BUT Réseaux & Télécommunications 学生的实践项目而设计。 ## 功能 - 对任何 IPv4 CIDR 范围进行 **ICMP ping 扫描**(多线程) - 对每台主机上的 15 个常见端口进行 **TCP 端口扫描** - **反向 DNS** 主机名解析 - **SQLite** 持久化存储(主机、端口、扫描历史) - 使用 Python (`http.server`) 的 **REST API** — 无外部依赖 - **PHP 仪表板**包含 4 个页面:仪表板、主机、端口、历史 - 每 30 秒 **自动刷新** - 从 Web UI 触发扫描 ## 架构 ``` netmonitor/ ├── python/ │ ├── scanner.py # Core scanner (ping, port scan, DB) │ └── api_server.py # HTTP REST API (port 5000) ├── php/ │ ├── api/ │ │ └── config.php # API client helpers │ └── public/ │ ├── index.php # Dashboard overview │ ├── hosts.php # Full host list │ ├── host.php # Host detail + ports │ ├── ports.php # All port results │ ├── history.php # Scan history │ └── css/ │ └── style.css ├── data/ # SQLite DB + logs (auto-created) └── README.md ``` ## 环境要求 **Python** - Python 3.8+ - 仅需标准库(无需 pip install) **PHP** - PHP 7.4+,需启用 `file_get_contents` 并设置 `allow_url_fopen = On` - 任意 Web 服务器(Apache、Nginx、PHP 内置服务器) ## 使用方法 ### 1. 启动 Python API ``` cd python/ python3 api_server.py # API 运行在 http://127.0.0.1:5000 ``` ### 2. 启动 PHP Web 服务器 ``` cd php/public/ php -S localhost:8080 # Dashboard 位于 http://localhost:8080 ``` ### 3. 从 CLI 运行扫描(可选) ``` cd python/ # Single scan python3 scanner.py 192.168.1.0/24 # 每 60s 自动扫描 python3 scanner.py 192.168.1.0/24 --loop ``` ### 4. 从 Web UI 触发扫描 打开仪表板 → **Launch a Scan** → 输入 CIDR → 点击 **Scan**。 ## REST API 端点 | 方法 | 端点 | 描述 | |--------|---------------------|------------------------------------| | GET | `/api/hosts` | 列出所有主机 (`?status=UP/DOWN`) | | GET | `/api/host` | 主机详情 + 端口 (`?ip=x.x.x.x`)| | GET | `/api/ports` | 所有端口 (`?state=open&port=80`) | | GET | `/api/history` | 扫描历史 (`?limit=20`) | | GET | `/api/stats` | 全局统计 | | POST | `/api/scan` | 触发扫描 `{"network":"..."}` | ## 展示技能 (BUT R&T) - IPv4 编址与 CIDR 表示法 - ICMP 协议 (ping) - TCP socket 编程 - DNS 反向查找 - Python 中的多线程 - REST API 设计 - SQL (SQLite, UPSERT, JOIN, 索引) - PHP/HTML/CSS Web 开发 - 客户端-服务器架构 ## 作者 Rayan — BUT Réseaux & Télécommunications, IUT de Rouen
标签:OpenVAS, PHP, Python, REST API, SQLite, 教学项目, 数据统计, 无后门, 检测规则, 端口扫描, 网络资产发现, 逆向工具