- discovery: ping 探测存活 + ARP 解析 MAC,包级 Devices map,串行扫描 - stress: 脚本生成模式(BuildScript/ParseResults),ToolSet 工具检测,包级 Results map - report: 包级 Printed map,SaveAndPrintDeviceReport 保存+打印 - sshclient: 包级 RunCommand - workflow: 仅持有 config,Start() 固定循环,直接调用各包方法 - config: 移除 ScanConfig.Concurrency(串行扫描无需并发数)
24 lines
574 B
Go
24 lines
574 B
Go
package discovery
|
||
|
||
import (
|
||
"fmt"
|
||
|
||
"auto-check/pkg/model"
|
||
)
|
||
|
||
// Devices 设备表(IP → 设备),每轮 Discover() 后更新,包级公开
|
||
var Devices = make(map[string]model.Device)
|
||
|
||
// Discover 扫描并更新包级 Devices map(过滤无 MAC 设备,保留上次状态延续)
|
||
func (s *Scanner) Discover() {
|
||
scanned := s.Scan()
|
||
Devices = make(map[string]model.Device, len(scanned))
|
||
for _, dev := range scanned {
|
||
if dev.MAC == "" {
|
||
fmt.Printf(" [!] %s 无 MAC(ARP 未解析),下轮重试\n", dev.IP)
|
||
continue
|
||
}
|
||
Devices[dev.IP] = dev
|
||
}
|
||
}
|