gpt4 book ai didi

c - 在 Linux 上获取有关网络接口(interface)更改的通知

转载 作者:IT王子 更新时间:2023-10-29 00:23:40 33 4
gpt4 key购买 nike

我需要一种在启用或禁用网络接口(interface)时通知我的用户空间应用程序的方法。我希望在不诉诸投票的情况下做到这一点。当网络相关事件发生时,内核是否提供某种钩子(Hook)来触发回调函数?

最佳答案

我相信 netlink (man 7 netlink) 工具通过 NETLINK_ROUTE 系列 (man 7 rtnetlink) 提供有关网络接口(interface)的信息。您可以在 netlink 套接字上使用 select()poll() 来获取您想要的信息。不过,我不确定这一点;我自己没用过。

在更高层次上,如果系统正在运行 NetworkManager ,当系统的网络状态发生变化时,它将通过 D-Bus 广播事件。例如,Epiphany 浏览器使用这些事件在系统失去网络连接时自动激活“离线工作”模式,并在网络连接恢复时切换回在线模式。有多种语言的 D-Bus 客户端库,它不像 netlink 那样特定于平台,所以这是我推荐使用的。

关于c - 在 Linux 上获取有关网络接口(interface)更改的通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2261759/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com