我需要监控网络接口的本地地址(IP)(即,无论何时更改或拔掉接口都做了一些事情),我想知道最好的方法是什么。目前我正在使用InterfaceByName来获取并验证/匹配无限循环中的接口详细信息。我监视几个接口,所以我想知道它是不是坏事,或者我是否应该使用一些延迟等。如果操作系统在接口更新时发送信号但我不知道这样的事情会很好。
答案 0 :(得分:1)
这将是非常系统特定的。在Linux上,我认为现在最简单的方法是读取每个接口的sysfs
个文件。
$ cat /sys/class/net/eth0/operstate
up
$ cat /sys/class/net/eth0/carrier
1
偶尔轮询他们不应该消耗太多资源,并为您提供所需的资源。
要获得更及时的更新,您可以设置netlink套接字以从内核接收NETLINK_ROUTE
更新。周围有Go netlink packages个{{3}},但我不确定它们有多普遍。