package model import "fmt" // ============================ // 公共类型 — 全包共用,唯一来源 // ============================ // Device 设备 // 发现阶段以 IP 标识(仅做 ping 可达性探测),MAC 在 SSH 登录后回填, // 空 = 尚未获取。键(map key)始终为 IP。 type Device struct { IP string // 当前 IP(DHCP 可能变化) MAC string // 物理地址,SSH 阶段回填,空 = 尚未获取 } // Label 设备显示名(用于日志/报告) func (d Device) Label() string { if d.MAC != "" { return fmt.Sprintf("%s (%s)", d.IP, d.MAC) } return d.IP }