Question

Comment puis-je faire en python les choses suivantes:

  1. Liste toutes les interfaces IP sur la machine actuelle.
  2. Recevoir des mises à jour sur les changements dans les interfaces réseau (monte, descend, change d'adresse IP).

Tout paquet python disponible dans Ubuntu Hardy fera.

Était-ce utile?

La solution

Je pense que la meilleure façon de le faire est par dbus-python .

Le tutoriel touche sur les interfaces réseau un peu :

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

Autres conseils

J'utilise le code suivant,

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

il donnera les interfaces réseau 'haut'

par exemple. eth0, eth2, wlan0

Non, non ... Vous n'avez pas besoin de déranger os.system () ou API dbus.

Qu'est-ce que vous avez vraiment besoin est d'utiliser l'API NetLink mettre en œuvre. Soit utiliser libnl interface (netlink.route.link) ou gérer les messages netlink par vous-même . Jetez un oeil à cet exemple .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top