4

我正在编写一个在 linux 上运行的 Python 应用程序。如果插入/拔出网线,我希望能够注册并得到系统通知

我已经在使用pyUdev(libUdev 的 python 绑定)来获得 USB 插入事件的通知。但是,由于网络 eth0 模块(例如)始终保持加载状态(无论插入的电缆如何),我没有得到我需要的信息。它仅适用于 if up/down 事件。

我已经阅读了很多关于提供此功能的 Windows WMI 的帖子,但在 linux 上没有。我在寻找正确的方向吗?

执行此操作的 python 方式(python 库)将是理想的,因为我想将其与我的程序集成。

4

2 回答 2

1

有很多方法可以通过轮询获取网络接口的“UP”状态,从简单地解析ifconfig输出到读取 /proc/net/... 伪文件的状态。

然而,对于此类事件的通知方式(即不轮询自己),在 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 脚本,这样您就可以为您的应用程序生成您喜欢的事件。

于 2011-09-06T09:39:17.950 回答
0

您是否查看过 netplugd命令,我不确定是否存在 python 包装器,但解析输出应该不难

于 2011-08-18T01:19:01.190 回答