我正在编写一个在linux上运行的Python应用程序。如果网络电缆已插入/拔出,我希望系统能够注册并通知。
我已经使用pyUdev(用于libUdev的python绑定)以获得USB插件事件的通知。但是,因为网络eth0模块(例如)始终保持加载状态(无论是否插入电缆),我都无法获得所需的信息。它仅适用于上/下事件。
我已经在Windows WMI上阅读了很多提供此功能的帖子,但在Linux上没有。我正朝着正确的方向前进吗?
这样做的python方法(一个python库)将是理想的,因为我想将它与我的程序集成。
答案 0 :(得分:1)
通过轮询获取网络接口的“UP”状态有很多方法,从简单地解析 ifconfig 输出到读取/ proc / net / ... pseudo-的状态文件。
但是,对于此类事件通知(即不自行投票)的方式,Ubuntu的最佳选择是使用 netplug 包。默认情况下不安装,您需要: sudo apt-get install netplug
有些文档在这里:http://manpages.ubuntu.com/manpages/lucid/man8/netplugd.8.html
要进行设置,您需要调整/etc/netplug/netplugd.conf和/ etc / netplug / netplug脚本。有关这些配置文件的示例,请查看http://natisbad.org/dyn-net/index.html
上的“配置netplug”部分使用/ etc / netplug / netplug,您可以在网络出现故障时调用自己的python脚本,这样您就可以为应用程序生成类型的事件。
答案 1 :(得分:0)
您是否查看了netplugd命令,我不确定是否存在python包装器但是解析输出并不困难