- IP→MAC 查询(AutoRefresh 后台刷新/Search/Table), 新增依赖 mostlygeek/arp - 附测试、examples/arp 例程与包 README
28 lines
812 B
Go
28 lines
812 B
Go
// 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))
|
|
}
|