Pergunta

Como posso fazer as seguintes coisas em python:

  1. Lista todas as interfaces IP na máquina atual.
  2. Receber atualizações sobre as mudanças nas interfaces de rede (sobe, desce, muda de endereço IP).

Qualquer pacote python disponível no Ubuntu Hardy vai fazer.

Foi útil?

Solução

Eu acho que a melhor maneira de fazer isso é através dbus-python .

O tutorial toques sobre interfaces de rede um pouco :

import dbus
bus = dbus.SystemBus()
proxy = bus.get_object('org.freedesktop.NetworkManager',
                       '/org/freedesktop/NetworkManager/Devices/eth0')
# proxy is a dbus.proxies.ProxyObject

Outras dicas

Eu estive usando o seguinte código,

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

ele vai dar as 'up' interfaces de rede

por exemplo. eth0, eth2, wlan0

Não, não ... Você não precisa se preocupar os.system () ou dbus API.

O que você realmente precisa é usar API netlink para implementar isso. Ou usar mensagens netlink libnl de interface (netlink.route.link) ou punho por si mesmo . Dê uma olhada na este exemplo .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top