在Python中处理多个网络接口
我想在Python中做以下几件事:
- 列出当前机器上的所有IP接口。
- 接收网络接口变化的更新(比如接口上线、下线或者IP地址变化)。
在Ubuntu Hardy上,任何可用的Python包都可以。
3 个回答
0
我一直在使用以下代码,
temp = str(os.system("ifconfig -a | awk '$2~/^Link/{_1=$1;getline;if($2~/^addr/){print _1" "}}'"))
它会列出所有“正常运行”的网络接口
比如说,eth0、eth2、wlan0
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