feat(arp): 自 go-hua 迁入 ARP 表查询与定时刷新缓存
- IP→MAC 查询(AutoRefresh 后台刷新/Search/Table), 新增依赖 mostlygeek/arp - 附测试、examples/arp 例程与包 README
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
// arp 包示例:读取系统 ARP 表并按 IP 查询 MAC 地址,支持定时自动刷新缓存
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"git.zeroonesoft.cn/golib/zogo/arp"
|
||||
)
|
||||
|
||||
func main() {
|
||||
// 手动刷新一次 ARP 缓存
|
||||
arp.CacheUpdate()
|
||||
fmt.Println("缓存更新时间:", arp.CacheLastUpdate().Format("15:04:05"))
|
||||
fmt.Println("累计刷新次数:", arp.CacheUpdateCount())
|
||||
|
||||
// 按 IP 查询 MAC(缓存未命中时会自动刷新一次再查)
|
||||
gateway := "192.168.1.1"
|
||||
fmt.Printf("%s 的 MAC: %q\n", gateway, arp.Search(gateway))
|
||||
|
||||
// 开启自动刷新(每 30 秒),适合长时间运行的服务
|
||||
arp.AutoRefresh(30 * time.Second)
|
||||
fmt.Println("已开启自动刷新(每30秒)")
|
||||
|
||||
time.Sleep(100 * time.Millisecond)
|
||||
fmt.Printf("再次查询 %s: %q\n", gateway, arp.Search(gateway))
|
||||
}
|
||||
Reference in New Issue
Block a user