Как я могу сделать следующие вещи в python:
- Список всех IP-интерфейсов на текущей машине.
- Получать обновления об изменениях сетевых интерфейсов (поднимается, отключается, меняет IP-адрес).
Подойдет любой пакет Python, доступный в Ubuntu Hardy.
Как я могу сделать следующие вещи в python:
Подойдет любой пакет Python, доступный в Ubuntu Hardy.
Я думаю, что лучший способ сделать это — через 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
Я использовал следующий код,
temp = str(os.system("ifconfig -a | awk '$2~/^Link/{_1=$1;getline;if($2~/^addr/){print _1" "}}'"))
это даст «вверх» сетевые интерфейсы
например эт0, эт2, влан0
Нет, нет... Вам не нужно беспокоиться об os.system() или dbus API.
Что вам действительно нужно, так это использовать netlink API для реализации этого. Либо используйте интерфейс libnl (netlink.route.link), либо обрабатывайте сообщения netlink самостоятельно. . Взгляните на этот пример.