You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中获取DBus接口的NetworkManager Metered属性

用Python获取NetworkManager的Metered属性(检查网络是否按流量计费)

你可以通过DBus的属性接口来获取NetworkManager的Metered属性,以下是两种实现方式:

方式1:使用DBus Properties接口直接调用Get方法

import dbus

# 连接系统DBus
bus = dbus.SystemBus()
# 获取NetworkManager对象
nm_object = bus.get_object('org.freedesktop.NetworkManager', '/org/freedesktop/NetworkManager')
# 实例化Properties接口
props_interface = dbus.Interface(nm_object, dbus_interface='org.freedesktop.DBus.Properties')

# 获取Metered属性值
metered_status = props_interface.Get('org.freedesktop.NetworkManager', 'Metered')
print(f"当前网络计费状态: {metered_status}")

方式2:通过已有的NetworkManager接口便捷访问属性

你已经创建了org.freedesktop.NetworkManager接口实例,直接通过属性访问语法即可获取:

import dbus

bus = dbus.SystemBus()
interface = dbus.Interface(
    bus.get_object(
        'org.freedesktop.NetworkManager',
        '/org/freedesktop/NetworkManager'
    ),
    dbus_interface='org.freedesktop.NetworkManager'
)

# 两种便捷获取方式任选其一
metered_status = interface.Metered
# 或者 metered_status = interface.Get('Metered')

print(f"当前网络计费状态: {metered_status}")

返回值说明

Metered属性返回整数,对应网络计费状态:

  • 0:未知(NM_METERED_UNKNOWN)
  • 1:不计费(NM_METERED_NO)
  • 2:计费(NM_METERED_YES)
  • 3:猜测为计费状态(NM_METERED_GUESS)

内容的提问来源于stack exchange,提问作者souser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 22:22:09