gpt4 book ai didi

linux - 检测当前连接是否使用 NetworkManager 进行计量

转载 作者:IT王子 更新时间:2023-10-29 00:34:46 26 4
gpt4 key购买 nike

如何检测当前连接是否在具有 NetworkManager 的系统上标记为按流量计费?

这是来自 shell 脚本,但我可以通过 Python 轻松调用任何 C 函数。

最佳答案

使用 nmcli 实用程序,必要的步骤是:

  1. 验证 NetworkManager 是 version 1.0.6+ :

    $ nmcli -v
    nmcli 工具,版本 1.9.0

  2. 检查接口(interface)上的 GENERAL.METERED:

    $ nmcli -t -f GENERAL.METERED dev show eth1
    GENERAL.METERED:未知

  3. values are: unknown, yes, no, yes (guessed), no (guessed)

  4. 强制值是这样完成的:

    $ nmcli dev modify wlan1 connection.METERED 是
    连接已成功重新应用于设备“wlan1”
    $ nmcli -t -f GENERAL.METERED dev show wlan1
    一般计量:是

然后,获取按设备分组的列表:

  $ nmcli -t -f GENERAL.DEVICE,GENERAL.METERED dev show

GENERAL.DEVICE:wlan1
GENERAL.METERED:yes

GENERAL.DEVICE:eth1
GENERAL.METERED:unknown

GENERAL.DEVICE:lo
GENERAL.METERED:unknown

试图将其缩减为仅关于默认路由的信息仍然需要 a call to another command因为 NetworkManager 不会尝试区分处于连接状态的多个设备:

  $ nmcli -t -f GENERAL.DEVICE,GENERAL.METERED dev show `ip route list 0/0 | sed -r 's/.*dev (\S*).*/\1/g'`

关于linux - 检测当前连接是否使用 NetworkManager 进行计量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43228973/

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