- WMI 采集主板/BIOS/显卡/内存/CPU/硬盘等 11 类设备 + 变更比对 - 新增依赖 gopsutil/yusufpapurcu/wmi, 附测试、例程与 README
32 lines
1.1 KiB
Markdown
32 lines
1.1 KiB
Markdown
# hardware
|
|
|
|
硬件信息采集(WMI)与硬件变更检测:主板/BIOS/显卡/内存/CPU/硬盘/声卡/网卡/
|
|
显示器/鼠标/键盘,一次 `GetHardwareInfo` 全量采集。
|
|
|
|
> 迁移自 go-hua/hardware,代码保持原样。Windows 走 WMI;Unix 侧为精简实现。
|
|
|
|
## 用法
|
|
|
|
```go
|
|
import "git.zeroonesoft.cn/golib/zogo/hardware"
|
|
|
|
// 全量采集(结构体字段按设备分组)
|
|
hw, err := hardware.GetHardwareInfo()
|
|
fmt.Println(len(hw.Processor), len(hw.PhysicalMemory), len(hw.DiskDrive))
|
|
|
|
// 单项采集
|
|
boards, err := hardware.GetBaseBoardInfo()
|
|
bios, err := hardware.GetBiosInfo()
|
|
disks, err := hardware.GetDiskDriveInfo()
|
|
|
|
// 变更检测(与上次采集结果比对,任一字段变化即视为变更)
|
|
changed := hardware.CheckBaseBoardChanged(oldBoards, newBoards)
|
|
```
|
|
|
|
完整可运行例程:[examples/hardware/main.go](../examples/hardware/main.go)
|
|
|
|
## 注意
|
|
|
|
- WMI 查询有秒级耗时,勿在请求热路径上全量采集;建议进程启动或低频定时任务使用。
|
|
- `CheckBaseBoardChanged` 按字段值比较,不比对顺序。
|