# ipmonitor **Repository Path**: easyup/ipmonitor ## Basic Information - **Project Name**: ipmonitor - **Description**: No description available - **Primary Language**: Dart - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-02 - **Last Updated**: 2026-04-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # IP Monitor - 网络设备监控工具 一个基于Flutter的跨平台网络设备监控工具,支持IP范围扫描、多线程并发扫描、实时设备监控等功能。 ## 功能特性 ### 🎯 核心功能 - **IP范围监控**:支持设置多个IP监控范围(起始IP - 结束IP) - **多线程扫描**:支持1-50个并发线程,大幅提升扫描速度 - **三种监控模式**: - 后台监控:定时自动扫描网络设备 - 定时扫描:在指定时间点执行扫描 - 手动触发:用户手动启动扫描 - **实时设备展示**:表格形式展示在线设备信息 ### 📊 设备信息 - IP地址、主机名、MAC地址 - 设备厂商识别 - 响应时间测量 - 最后在线时间 - 设备状态(在线/离线) ### ⚙️ 高级配置 - **扫描性能优化**: - Ping超时时间:100ms-5000ms可调 - 扫描间隔延迟:0ms-500ms可调 - 最大并发数:1-50个线程可调 - **数据显示**: - 显示/隐藏扫描日志 - 显示/隐藏离线设备 - 实时进度显示 - **数据持久化**: - 自动保存监控设置 - 保存设备历史记录 - 支持7天历史数据保留 ## 技术栈 - **框架**:Flutter 3.10.7 - **状态管理**:Provider - **本地存储**:SharedPreferences - **平台支持**:Linux桌面(支持Windows/macOS/Android/iOS/Web) ## 安装部署 ### Linux桌面版 1. 下载发布包: ```bash wget https://gitee.com/easyup/ipmonitor/releases/download/v3.0/IPMonitor_Linux_x64_v3.0.tar.gz ``` 2. 解压并安装: ```bash tar -xzf IPMonitor_Linux_x64_v3.0.tar.gz cd IPMonitor_Release sudo ./install.sh install ``` 3. 运行程序: ```bash ipmonitor # 或在应用程序菜单中搜索 "IP Monitor" ``` ### 从源码构建 ```bash # 克隆仓库 git clone https://gitee.com/easyup/ipmonitor.git cd ipmonitor # 安装依赖 flutter pub get # 运行Linux桌面版 flutter run -d linux # 构建发布版 flutter build linux --release ``` ## 使用指南 ### 首次使用 1. 启动应用程序 2. 进入"IP范围设置"标签页 3. 添加要监控的IP范围(如:192.168.1.1 - 192.168.1.254) 4. 进入"监控设置"标签页,选择监控模式 5. 返回"设备列表"标签页,点击"扫描网络"按钮 ### 性能优化建议 | 场景 | 并发数 | 超时时间 | 延迟时间 | |------|--------|----------|----------| | 局域网扫描 | 10-20 | 500ms | 0ms | | 广域网扫描 | 5-10 | 2000ms | 50ms | | 快速扫描 | 20-30 | 1000ms | 0ms | | 精确扫描 | 1-5 | 3000ms | 100ms | ### 命令行参数 ```bash ./ipmonitor [选项] 选项: --help 显示帮助信息 --version 显示版本信息 --scan 启动后立即执行扫描 --background 以后台模式运行 ``` ## 项目结构 ``` ipmonitor/ ├── lib/ │ ├── main.dart # 应用入口 │ ├── models/ # 数据模型 │ │ ├── device_model.dart # 设备模型 │ │ └── settings_model.dart # 设置模型 │ ├── services/ # 服务层 │ │ ├── device_service.dart # 设备服务 │ │ └── settings_service.dart # 设置服务 │ ├── screens/ # 页面 │ │ └── home_screen.dart # 主界面 │ └── widgets/ # 组件 │ ├── device_table.dart # 设备表格 │ ├── ip_range_settings.dart # IP范围设置 │ └── monitoring_settings.dart # 监控设置 ├── build/ # 构建输出 └── pubspec.yaml # 项目配置 ``` ## 开发指南 ### 环境要求 - Flutter SDK 3.10.7+ - Dart SDK 3.10.7+ - Linux桌面环境(支持X11/Wayland) ### 代码规范 - 使用Provider进行状态管理 - 遵循Dart官方代码风格 - 使用异步编程处理网络请求 - 添加适当的错误处理 ### 测试 ```bash # 运行单元测试 flutter test # 运行集成测试 flutter test integration_test # 代码分析 flutter analyze ``` ## 性能数据 ### 扫描速度对比 | 并发数 | 254个IP扫描时间 | 速度提升 | |--------|----------------|----------| | 1线程 | ~12.7秒 | 1x | | 10线程 | ~1.3秒 | 10x | | 20线程 | ~0.7秒 | 18x | | 50线程 | ~0.5秒 | 25x | ### 内存占用 - 空闲状态:~50MB - 扫描状态:~80MB - 最大设备数:1000个 ## 故障排除 ### 常见问题 1. **无法扫描网络** - 检查网络连接 - 确保有执行ping和arp命令的权限 - 验证IP范围设置是否正确 2. **程序无法启动** - 检查是否安装了必要的依赖库 - 验证执行权限:`chmod +x ipmonitor` 3. **设备信息不完整** - 确保网络设备支持ARP协议 - 检查防火墙设置是否允许ICMP请求 ### 依赖库 ```bash # Ubuntu/Debian sudo apt-get install libgtk-3-0 libblkid1 liblzma5 # Fedora/RHEL sudo dnf install gtk3 libblkid liblzma ``` ## 贡献指南 1. Fork本仓库 2. 创建功能分支:`git checkout -b feature/新功能` 3. 提交更改:`git commit -m '添加新功能'` 4. 推送到分支:`git push origin feature/新功能` 5. 提交Pull Request ## 许可证 本项目基于MIT许可证发布。详见[LICENSE](LICENSE)文件。 ## 联系方式 - 项目地址:https://gitee.com/easyup/ipmonitor - 问题反馈:https://gitee.com/easyup/ipmonitor/issues - 版本发布:https://gitee.com/easyup/ipmonitor/releases ## 更新日志 ### v3.0 (2026-04-02) - 新增多线程并发扫描功能 - 支持1-50个并发线程配置 - 扫描速度提升10-25倍 - 点击扫描时自动清空设备列表 - 优化扫描性能设置界面 ### v2.0 (2026-04-02) - 新增扫描日志显示功能 - 支持关闭/开启日志显示 - 添加扫描超时和延迟设置 - 优化扫描进度反馈 ### v1.0 (2026-04-02) - 初始版本发布 - 基础IP范围设置功能 - 三种监控模式支持 - 设备表格展示 - Linux桌面应用发布