【问题标题】:Simulate Network Presence in dbus在 dbus 中模拟网络状态
【发布时间】:2010-03-31 04:37:41
【问题描述】:

有没有办法使用 Python 来模拟使用 dbus 的活动网络连接的存在?如果我在 dbus 上调用 getstate(),我就能得到当前的网络状态。我想将当前状态设置为 4(连接存在)。这是因为网络管理器无法使用我的调制解调器进行连接,而我使用其他工具进行连接。 Pidgin、Empathy 等软件无法检测到网络。

【问题讨论】:

  • 在调用 getState() 时,我可以获得连接状态。这意味着网络管理器正在某处设置状态。我想知道如何在我的应用程序中做到这一点。

标签: python linux dbus


【解决方案1】:

如果您通过右键单击网络管理器托盘图标并取消选中 启用网络 来禁用 NM,我很确定 Pidgin 和 Empathy 都假定您在线。因此,当您通过非 NM 机制进行连接时,您可以执行此操作。无需代码!

(您可以编写一个应用程序,它实现与 NetworkManager 相同的 D-Bus 接口,位于系统总线上,并假装在线,然后当您想使用您的网络时,杀死真正的 NetworkManager 程序并启动您的假一个,但对我来说这闻起来有点矫枉过正......)

【讨论】:

  • 谢谢,但以防万一我想设置网络状态,有没有简单的方法来做到这一点?只是将状态设置为 4(已连接)。可能会发出一些信号或在某处更改变量。
【解决方案2】:

您的选择是编写一些模拟 NetworkManager 的 D-Bus 接口的东西,或者为 NetworkManager 编写一个支持您使用的工具的模块。

【讨论】:

    猜你喜欢
    • 2020-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-10
    • 2010-09-23
    • 2011-01-20
    相关资源
    最近更新 更多