3

如何在 python 中执行以下操作:

  1. 列出当前机器上的所有 IP 接口。
  2. 接收有关网络接口更改的更新(上升、下降、更改 IP 地址)。

Ubuntu Hardy 中可用的任何 python 包都可以。

4

3 回答 3

3

我认为最好的方法是通过dbus-python

教程稍微涉及网络接口:

import dbus
bus = dbus.SystemBus()
proxy = bus.get_object('org.freedesktop.NetworkManager',
                       '/org/freedesktop/NetworkManager/Devices/eth0')
# proxy is a dbus.proxies.ProxyObject
于 2009-07-07T07:02:55.043 回答
0

我一直在使用以下代码,

temp =  str(os.system("ifconfig -a | awk '$2~/^Link/{_1=$1;getline;if($2~/^addr/){print _1" "}}'"))

它将提供“向上”网络接口

例如 eth0、eth2、wlan0

于 2012-12-26T23:27:31.590 回答
0

不,不...您不需要打扰 os.system() 或 dbus API。

你真正需要的是使用 netlink API 来实现它。要么使用libnl接口 (netlink.route.link),要么自己处理 netlink 消息。看看这个例子

于 2012-12-27T01:27:57.677 回答