我需要监视网络接口的本地地址(IP)(例如,每当它发生更改或接口拔出时,执行一些操作),我想知道做这件事的最好方法是什么。目前,我正在使用InterfaceByName在无限循环中获取和验证/匹配接口详细信息。我监控了几个接口,所以我想知道这是不是一件坏事,或者我是否应该使用一些延迟等等。如果操作系统在接口更新时发送信号,那就太好了,但我不知道有这样的事情。
发布于 2014-12-13 08:09:14
这将是非常特定于系统的。在Linux上,我认为现在最简单的方法就是读取每个接口的sysfs文件。
$ cat /sys/class/net/eth0/operstate
up
$ cat /sys/class/net/eth0/carrier
1偶尔轮询它们不应该消耗太多资源,并提供您所需的资源。
为了获得更及时的更新,您可以设置一个netlink套接字来接收来自内核的NETLINK_ROUTE更新。有一些Go netlink packages,但我不确定它们有多通用。
https://stackoverflow.com/questions/27453858
复制相似问题