Bedienung mehrerer Netzwerkschnittstellen in Python
-
11-09-2019 - |
Frage
Wie kann ich die folgenden Dinge in Python zu tun:
- Listen Sie alle IP-Schnittstellen auf der aktuellen Maschine.
- 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.
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