gpt4 book ai didi

python - 用python捕捉系统事件

转载 作者:行者123 更新时间:2023-11-28 18:51:44 25 4
gpt4 key购买 nike

我的问题是,我想在 python 脚本中捕获系统事件。如果将电缆插入网络设备并且计算机连接到该网络,我想处理此事件,启动一个功能(因为此时默认网关正在更改,我需要识别这一点)。是否有模块执行此操作?

我需要这样的东西:

if class.network_connect_event():
do some stuff

此事件处理必须与 windows 和 Unix 系统一起工作。

谢谢

编辑:

我真正需要的是某种识别 USB 网络设备的方法。插入时识别它并获取其 IP 地址对我来说很重要。

最佳答案

您可能可以通过监听 dbus 事件来做到这一点。

从命令行使用 dbus-monitor 开始试验。当我断开 eth0 连接时来 self 的笔记本电脑 (Ubuntu) 的示例:

$ dbus-monitor --system
...
... # lots of events scroll by, including the ones below
...
signal sender=:1.6 -> dest=(null destination) serial=1275 path=/org/freedesktop/NetworkManager/Devices/0; interface=org.freedesktop.NetworkManager.Device.Wired; member=PropertiesChanged
array [
dict entry(
string "State"
variant uint32 70
)
]
signal sender=:1.6 -> dest=(null destination) serial=1289

path=/org/freedesktop/NetworkManager/ActiveConnection/1; interface=org.freedesktop.NetworkManager.Connection.Active; member=PropertiesChanged
array [
dict entry(
string "Default"
variant boolean true
)
dict entry(
string "State"
variant uint32 2
)
]

您应该能够使用 Python dbus 绑定(bind)来监听这些事件。我不熟悉如何执行此操作的详细信息,但有 tutorials .

编辑:

试试这个包:http://packages.python.org/python-networkmanager/ (免责声明:我没有尝试过)。

编辑 2:

我没有注意到您需要 Windows 和 Unix。在 Windows 上,您将不得不寻找另一种方式(因为在 Windows 上不使用 dbus)。

关于python - 用python捕捉系统事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11990345/

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