# LanSecurityTools **Repository Path**: dingzl/lansecuritytools ## Basic Information - **Project Name**: LanSecurityTools - **Description**: 一款基于 WPF 开发的局域网安全扫描和管理工具,提供设备发现、端口扫描、漏洞检测等功能。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 2 - **Created**: 2026-03-31 - **Last Updated**: 2026-04-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 网管工具箱 (LanSecurityTools) 一款基于 WPF 开发的局域网安全扫描和管理工具,提供设备发现、端口扫描、漏洞检测等功能。部分功能还在优化完善中,如果有问题请到[Issues · 花开彼岸/LanSecurityTools - Gitee.com](https://gitee.com/tjjzsj/lansecuritytools/issues)提出,如果希望增加新的功能也请反馈,我将在充分听取大家已将的基础上,在后续版本中完善。
## 📋 目录 - [功能特性](#-功能特性) - [系统要求](#-系统要求) - [安装说明](#-安装说明) - [使用说明](#-使用说明) - [技术栈](#-技术栈) - [项目结构](#-项目结构) - [编译说明](#-编译说明) - [发布说明](#-发布说明) - [常见问题](#-常见问题) - [贡献指南](#-贡献指南) - [许可证](#-许可证) ## ✨ 功能特性 ### 核心功能 - **🔍 网络扫描** - 快速扫描局域网内的所有设备 - 支持自定义 IP 地址范围 - 实时显示扫描进度和结果 - 支持暂停/继续/停止扫描 - 自动识别设备厂商(基于 MAC 地址) - 显示设备详细信息(IP、MAC、主机名等) - 支持添加设备备注 - 设备状态实时监控 - **🔌 端口扫描** - 扫描目标设备的开放端口 - 支持多种扫描类型:TCP 全连接、UDP、SYN、ACK - 识别端口服务类型和版本 - 支持自定义端口范围 - **🌐 网络拓扑** - 自动生成网络拓扑图 - 显示设备之间的连接关系 - 支持设备类型识别和可视化 - 基于力导向布局算法 - **💻 网络命令** - 集成常用网络命令:ping、tracert、nslookup、arp、route - 实时显示命令执行结果 - 支持命令参数配置 - 结果可视化展示 - **📡 WLAN扫描** - 扫描周围的WLAN网络 - 显示SSID、BSSID、信号强度、信道、加密方式等详细信息 - 支持信号强度可视化展示 - 支持自动刷新和手动扫描 - 支持按不同属性排序 - **🔑 设备密码管理** - 存储和管理设备默认密码 - 支持按设备类型、厂家、型号分类 - 支持添加备注信息 - 支持新增、编辑、删除操作 - 支持分页和搜索功能 - **📤 数据导出** - 导出扫描结果为 Excel 格式 - 支持自定义导出字段 - **🛡️ 安全功能** - 网关扫描和异常检测 - Windows 共享目录扫描 - 服务版本识别和指纹识别 - 操作系统指纹识别 - 网络设备自动分类(PC/服务器/打印机/AP/摄像头) ### 界面特性 - 🎨 基于 HandyControl 的现代化 UI - 🔄 响应式布局,适配不同分辨率 - 📊 实时进度显示和状态反馈 ## 📷 界面预览 ### 主界面 ![主界面](image/1.png) ### 网络扫描 ![网络扫描](image/2.png) ### 端口扫描 ![端口扫描](image/3.png) ### 垃圾清理 ![垃圾清理](image/4.png) ### 密码速查 ![密码速查](image/5.png) ### 网络命令 ![网络命令](image/6.png) ## 💻 系统要求 ### 最低要求 - **操作系统**: Windows 10 版本 1903 或更高版本(64 位) - **.NET 运行时**: .NET 8.0 Runtime 或更高版本 - **内存**: 2 GB RAM - **磁盘空间**: 100 MB 可用空间 - **网络**: 以太网或 Wi-Fi 网络连接 ### 推荐配置 - **操作系统**: Windows 11 - **.NET 运行时**: .NET 8.0 Desktop Runtime 最新版 - **内存**: 4 GB RAM - **磁盘空间**: 500 MB 可用空间(包含数据库) ## 📥 安装说明 ### 方式一:下载安装(推荐) 1. 从 [Releases](https://github.com/yourusername/LanSecurityTools/releases) 下载最新版本 2. 解压到任意目录 3. 双击 `LanSecurityTools.exe` 运行 ### 方式二:安装 .NET 运行时 如果提示缺少 .NET 运行时,请前往微软官网下载: - [.NET 8.0 Desktop Runtime](https://dotnet.microsoft.com/download/dotnet/8.0) - 选择 Windows x64 版本安装 ## 🚀 使用说明 ### 快速开始 1. **启动程序** ``` 双击 LanSecurityTools.exe ``` 2. **配置扫描范围** - 在 IP 地址范围输入框中输入要扫描的 IP 段 - 示例:`192.168.1.1-254` 或 `192.168.1.0/24` 3. **开始扫描** - 点击"开始扫描"按钮 - 实时查看扫描进度和发现的设备 4. **查看设备信息** - 在设备列表中查看扫描结果 - 点击设备查看详细信息 5. **导出结果** - 扫描完成后点击"导出"按钮 - 选择保存路径和文件格式 ### 功能说明 #### 网络扫描 - **快速扫描**: 扫描常见端口,速度快 - **完整扫描**: 扫描所有端口,耗时较长 - **自定义扫描**: 自定义端口范围 #### 设备管理 - **添加备注**: 右键点击设备可添加备注信息 - **删除设备**: 从列表中移除不需要的设备 - **刷新状态**: 更新设备在线状态 #### 快捷操作 - `F5`: 刷新/重新扫描 - `Ctrl+S`: 停止扫描 - `Ctrl+P`: 暂停/继续扫描 - `Ctrl+E`: 导出结果 ## 🛠️ 技术栈 ### 前端 - **框架**: WPF (Windows Presentation Foundation) - **UI 库**: [HandyControl 3.5.1](https://github.com/HandyOrg/HandyControl) - **架构模式**: MVVM (Model-View-ViewModel) - **数据绑定**: CommunityToolkit.Mvvm ### 后端 - **运行时**: .NET 8.0 - **数据库**: SQLite - **ORM**: SqlSugar - **依赖注入**: Microsoft.Extensions.DependencyInjection ### 第三方库 | 库名 | 版本 | 用途 | | ---------------------------------------- | ------ | -------- | | CommunityToolkit.Mvvm | 8.4.0 | MVVM 框架 | | HandyControl | 3.5.1 | UI 控件库 | | Microsoft.Extensions.DependencyInjection | 8.0.0 | 依赖注入 | | Microsoft.Extensions.Logging | 8.0.0 | 日志框架 | | MiniExcel | 1.43.0 | Excel 导出 | | System.Text.Json | 8.0.0 | JSON 序列化 | ## 📁 项目结构 ``` LanSecurityTools/ ├── LanSecurityTools/ # 主项目(WPF 应用) │ ├── Views/ # XAML 视图文件 │ │ ├── NetworkScanPage.xaml # 网络扫描页面 │ │ ├── PortScanPage.xaml # 端口扫描页面 │ │ ├── WlanScanPage.xaml # WLAN扫描页面 │ │ ├── DevicePasswordPage.xaml # 设备密码管理页面 │ │ ├── NetworkTopologyPage.xaml # 网络拓扑页面 │ │ ├── NetworkCommandPage.xaml # 网络命令页面 │ │ ├── DevicePasswordEditDialog.xaml # 设备密码编辑对话框 │ │ ├── MyPasswordBox.xaml # 个人密码箱页面 │ │ ├── MyPasswordEditDialog.xaml # 个人密码编辑对话框 │ │ └── ... │ ├── ViewModels/ # 视图模型 │ │ ├── MainViewModel.cs # 主窗口VM │ │ ├── NetworkScanPageViewModel.cs │ │ ├── WlanScanPageViewModel.cs │ │ ├── DevicePasswordViewModel.cs │ │ ├── NetworkTopologyViewModel.cs │ │ ├── NetworkCommandViewModel.cs │ │ ├── MyPasswordViewModel.cs │ │ └── ... │ ├── Controls/ # 自定义控件 │ │ ├── TopologyCanvas.cs # 拓扑图绘制控件 │ │ └── IconFont.cs # 图标字体控件 │ ├── Resources/ # 资源文件 │ │ ├── ELStyles.xaml # 自定义样式 │ │── Fonts/ # 字体文件 │ ├── Models/ # 数据模型 │ ├── Converters/ # 值转换器 │ ├── App.xaml # 应用程序入口 │ ├── MainWindow.xaml # 主窗口 │ └── NewTool.ico # 应用图标 ├── LanSecurityTools.BLL/ # 业务逻辑层 │ ├── Services/ # 服务实现 │ │ ├── NetworkScannerService.cs │ │ ├── DeviceManagementService.cs │ │ ├── WlanScanService.cs │ │ ├── DevicePasswordService.cs │ │ ├── NetworkTopologyService.cs │ │ ├── NetworkCommandService.cs │ │ ├── CommandResultParser.cs │ │ ├── LogService.cs │ │ ├── StatusBarService.cs │ │ ├── Layout/ # 布局算法 │ │ │ └── ForceDirectedLayout.cs │ │ └── ... │ └── Interfaces/ # 服务接口 │ ├── INetworkScannerService.cs │ ├── IDeviceManagementService.cs │ ├── IWlanScanService.cs │ ├── IDevicePasswordService.cs │ ├── INetworkTopologyService.cs │ ├── INetworkCommandService.cs │ ├── ILogService.cs │ └── ... ├── LanSecurityTools.DAL/ # 数据访问层 │ ├── Data/ # 数据库上下文 │ ├── Entities/ # 数据库实体 │ │ ├── Device.cs │ │ ├── DevicePassword.cs │ │ └── ... │ └── Repositories/ # 数据仓库 ├── LanSecurityTools.Models/ # 通用模型层 │ ├── Device.cs # 设备模型 │ ├── DevicePassword.cs # 设备密码模型 │ ├── Network/ # 网络相关模型 │ │ ├── NetworkNode.cs # 网络节点 │ │ ├── NetworkLink.cs # 网络连接 │ │ ├── NetworkTopology.cs # 网络拓扑 │ │ ├── NetworkCommand.cs # 网络命令 │ │ ├── PortInfo.cs # 端口信息 │ │ ├── TcpingResult.cs # TCPing结果 │ │ ├── SharedFolder.cs # 共享文件夹 │ │ └── CommandResultParsers.cs # 命令结果解析器 │ ├── Enums.cs # 枚举定义 │ └── ... ├── LanSecurityTools.Common/ # 公共工具类 │ ├── Helpers/ # 辅助类 │ │ ├── IpHelper.cs # IP 工具类 │ │ ├── MacHelper.cs # MAC 工具类 │ │ └── NetworkHelper.cs # 网络辅助类 │ └── ... └── README.md # 项目说明文档 ``` ## 🔨 编译说明 ### 前置要求 - Visual Studio 2022 或 Visual Studio Code - .NET 8.0 SDK - Git ### 步骤 1. **克隆仓库** ```bash git clone https://gitee.com/tjjzsj/lansecuritytools cd LanSecurityTools ``` 2. **还原依赖** ```bash dotnet restore ``` 3. **编译项目** ```bash dotnet build -c Release ``` 4. **运行程序** ```bash dotnet run --project LanSecurityTools ``` ### Visual Studio 编译 1. 打开 `LanSecurityTools.sln` 2. 选择 `Release` 配置 3. 按 `F5` 运行或 `Ctrl+Shift+B` 编译 ## 📦 发布说明 ### 发布为单文件应用 ```bash dotnet publish -c Release -r win-x64 --self-contained false /p:PublishSingleFile=true ``` 发布后的文件位于: ``` LanSecurityTools/bin/Release/net8.0-windows/win-x64/publish/ ``` ### 发布配置说明 项目已配置优化参数(见 `LanSecurityTools.csproj`): ```xml win-x64 true false ``` ### 体积优化 当前发布包约 **21 MB**,包含: - 主程序(单文件) - SQLite 原生库 - MAC 厂商数据库 - 调试符号(可选删除) 如需进一步减小体积,可: 1. 删除 `.pdb` 文件 2. 启用代码修剪(需测试) ## ❓ 常见问题 ### Q1: 程序无法启动,提示缺少 .NET 运行时 **解决方案**: - 下载安装 [.NET 8.0 Desktop Runtime](https://dotnet.microsoft.com/download/dotnet/8.0) - 确保安装的是 x64 版本 ### Q2: 扫描结果为空 **解决方案**: - 检查网络连接是否正常 - 确认 IP 地址范围配置正确 - 以管理员身份运行程序 - 检查防火墙设置 ### Q3: 导出的 Excel 文件无法打开 **解决方案**: - 确保已安装 Microsoft Excel 或 WPS Office - 尝试使用其他 Excel 查看器 - 检查文件是否被其他程序占用 ### Q4: 程序界面显示异常 **解决方案**: - 更新显卡驱动 - 检查 Windows 更新 - 重启程序 ### Q5: 数据库错误 **解决方案**: ```bash # 删除数据库文件,程序会自动重建 删除 data/LanSecurityTools.db ``` ## 🤝 贡献指南 欢迎贡献代码、报告问题或提出建议! ### 提交 Issue - 描述清楚问题和复现步骤 - 提供系统环境和版本信息 - 附上截图或日志(如有) ### 提交 PR 1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启 Pull Request ### 开发规范 - 遵循 C# 编码规范 - 代码需包含必要的注释 - 提交信息使用英文或中文,描述清晰 ## 📄 许可证 本项目采用Apache 2.0 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 ## 📞 联系方式 - **项目地址**: [花开彼岸/LanSecurityTools](https://gitee.com/tjjzsj/lansecuritytools) - **问题反馈**: - **邮箱**: ## 🙏 致谢 感谢以下开源项目: - [HandyControl](https://github.com/HandyOrg/HandyControl) - 优秀的 WPF UI 库 - [CommunityToolkit](https://github.com/CommunityToolkit/dotnet) - MVVM 工具集 - [SqlSugar](https://www.sqlsugar.net/) - 国产优秀的 ORM 框架 - [MiniExcel](https://github.com/MiniExcel/MiniExcel) - 高效的 Excel 操作库 ## 📝 更新日志 ### v1.3.0 (2026-03-24) - ✨ 新增网络命令集成功能 - 💻 集成常用网络命令:ping、tracert、nslookup、arp、route - 📊 命令执行结果可视化展示 - 🎨 优化命令执行界面 ### v1.2.0 (2026-03-23) - ✨ 新增网络拓扑自动生成功能 - 🌐 基于力导向布局算法的拓扑图 - 🎨 自定义 TopologyCanvas 控件 - 🔍 设备类型自动识别和可视化 ### v1.1.0 (2026-03-22) - ✨ 新增设备密码管理功能 - 🔑 实现设备密码的增删改查 - 📋 支持按设备类型、厂家、型号分类 - 🔍 支持分页和搜索功能 - 🎨 使用 HandyControl Dialog 优化用户界面 ### v1.0.0 (2026-03-20) - ✨ 初始版本发布 - 🔍 实现网络扫描功能 - 💻 实现设备管理功能 - 🔌 实现端口扫描功能 - 📡 实现 WLAN 扫描功能 - 📤 实现数据导出功能 - 🎨 基于 HandyControl 的现代化 UI ### v0.9.0 (2026-03-15) - Beta - 🔧 内部测试版 - 🐛 修复已知问题 ***
**如果觉得有用,请给个 ⭐ Star 支持一下!** Made with ❤️ by Your Team