我想检查当前的网络连接是否计量。在Bash中,我可以运行:
qdbus --system org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.NetworkManager.Metered
我想用Python来做。
我写了一段代码来获得必要的接口:
import dbus
bus = dbus.SystemBus()
interface = dbus.Interface(
bus.get_object(
'org.freedesktop.NetworkManager',
'/org/freedesktop/NetworkManager'
),
dbus_interface='org.freedesktop.NetworkManager'
)
我可以得到任何方法,比如GetDevices()
:
method = interface.get_dbus_method('GetDevices')
它的工作原理(print(method())
):
dbus.Array([dbus.ObjectPath('/org/freedesktop/NetworkManager/Devices/1'), dbus.ObjectPath('/org/freedesktop/NetworkManager/Devices/2'), dbus.ObjectPath('/org/freedesktop/NetworkManager/Devices/14')], signature=dbus.Signature('o'))
如何获得Metered
属性?
1条答案
按热度按时间r7xajy2e1#
我建议你看看周围更现代的D-Bus库,并尝试在它们的工作方式上更pythonic。我个人觉得pydbus很容易上手和运行。
如果你想使用dbus库,那么它会像这样: