Frage

Wie kann ich die folgenden Dinge in Python zu tun:

  1. Listen Sie alle IP-Schnittstellen auf der aktuellen Maschine.
  2. Erhalten Sie Updates über die Änderungen im Netzwerk-Schnittstellen (nach oben geht, geht nach unten, ändert sich die IP-Adresse).

Jedes verfügbare Python-Paket in Ubuntu Hardy tun wird.

War es hilfreich?

Lösung

Ich denke, der beste Weg, dies zu tun ist, über dbus-python .

Die Tutorial auf Netzwerk-Schnittstellen berührt ein wenig :

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

Andere Tipps

Ich habe den folgenden Code unter Verwendung von,

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

es wird die 'up' Netzwerk-Schnittstellen geben

z. eth0, eth2, wlan0

Nein, nein ... Sie brauchen nicht os.system () oder dbus API zu stören.

Was Sie wirklich brauchen, ist netlink API zu verwenden, um dies zu realisieren. Entweder verwenden Sie libnl Schnittstelle (netlink.route.link) oder Griff netlink Nachrichten selbst . Schauen Sie sich auf diesem Beispiel .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top