【发布时间】:2010-11-08 14:38:56
【问题描述】:
如何在 python 中做以下事情:
- 列出当前机器上的所有IP接口。
- 接收有关网络接口更改(上升、下降、更改 IP 地址)的更新。
Ubuntu Hardy 中可用的任何 python 包都可以。
【问题讨论】:
标签: python linux networking ip
如何在 python 中做以下事情:
Ubuntu Hardy 中可用的任何 python 包都可以。
【问题讨论】:
标签: python linux networking ip
不,不...您不需要打扰 os.system() 或 dbus API。
您真正需要的是使用 netlink API 来实现这一点。要么使用libnl 接口(netlink.route.link),要么自己处理netlink 消息。看看this example。
【讨论】:
我一直在使用下面的代码,
temp = str(os.system("ifconfig -a | awk '$2~/^Link/{_1=$1;getline;if($2~/^addr/){print _1" "}}'"))
它将提供“向上”网络接口
例如eth0, eth2, wlan0
【讨论】:
我认为最好的方法是通过dbus-python。
tutorial 有点涉及网络接口:
import dbus
bus = dbus.SystemBus()
proxy = bus.get_object('org.freedesktop.NetworkManager',
'/org/freedesktop/NetworkManager/Devices/eth0')
# proxy is a dbus.proxies.ProxyObject
【讨论】: