Python: prüfen, ob eine Netzwerk-Schnittstelle ist bis
In Python, gibt es eine Möglichkeit zu erkennen, ob eine gegebene Netzwerk-Schnittstelle ist bis?
In meinem Skript, legt der Nutzer einen Netzwerk-Schnittstelle, aber ich möchte sicherstellen, dass die Schnittstelle und hat eine IP-Adresse zugewiesen, bevor Sie etwas anderes zu tun.
Ich bin auf Linux und ich bin root.
Was OS? Funktioniert dieses Skript ausführen müssen, die auf verschiedenen OS ' s, oder ist es nur eines in allem?
Ops. Linux. 😉 In Zukunft werde ich verlängern dies auf OS X und Windows, aber für jetzt Linux wird genug sein
Keine sorgen :). stackoverflow.com/questions/11735821/python-get-localhost-ip/... <-- hast du gesehen? Die akzeptierte Antwort, funktioniert unter linux. Die netifaces Modul ist tragbar und funktioniert auf dem os getestet.
Wow, die Bibliothek ist Super! Es löste alle meine Probleme. Danke!!
Ich BIN AUF LINUX, und ich BIN ROOT-klingt wie dies ist mein Haus ,ich ll brennen, wenn ich zu!!!
Ops. Linux. 😉 In Zukunft werde ich verlängern dies auf OS X und Windows, aber für jetzt Linux wird genug sein
Keine sorgen :). stackoverflow.com/questions/11735821/python-get-localhost-ip/... <-- hast du gesehen? Die akzeptierte Antwort, funktioniert unter linux. Die netifaces Modul ist tragbar und funktioniert auf dem os getestet.
Wow, die Bibliothek ist Super! Es löste alle meine Probleme. Danke!!
Ich BIN AUF LINUX, und ich BIN ROOT-klingt wie dies ist mein Haus ,ich ll brennen, wenn ich zu!!!
InformationsquelleAutor Ricky Robinson | 2013-07-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vorgeschlagen von @Gabriel Samfira, die ich verwendet
netifaces
. Die folgende Funktion gibt True zurück, wenn eine IP-Adresse zugeordnet ist, um eine bestimmte Schnittstelle.Die Dokumentation ist hier
if anInterface in netifaces.interfaces() #...
Leider funktioniert nur die Hälfte für IPv6/AF_INET6: während eine Schnittstelle becomming LAUFEN bekommt seinen LLA, wenn die gleiche Schnittstelle offline geht, die LLA noch lebt.
InformationsquelleAutor Ricky Robinson
Kann das interface konfiguriert werden, mit einer IP-Adresse und nicht so die akzeptierte Antwort ist falsch. Sie wirklich brauchen, um zu überprüfen
/sys/class/net/<interface>/flags
. Wenn der Inhalt in der Variablen flags,flags & 0x1
ist, ob die Schnittstelle aktiviert ist oder nicht.Abhängig von der Anwendung, die
/sys/class/net/<interface>/operstate
könnte das sein, was Sie wirklich wollen, aber technisch könnte die Schnittstelle sein und dieoperstate
nach unten, z.B. wenn kein Kabel angeschlossen ist.All dies ist, Linux-spezifische natürlich.
InformationsquelleAutor user18197
Mit pyroute2.IPRoute:
Mit pyroute2.IPDB:
InformationsquelleAutor svinota
Können Sie sehen den Inhalt der Datei in
/sys/class/net/<interface>/operstate
. Wenn der Inhalt nichtdown
dann die Schnittstelle.InformationsquelleAutor André Pires
Antwort mit psutil:
InformationsquelleAutor ofirule
Wenn sich die Frage zu prüfen, ob das Kabel ist conencted (FreeBSD);
Dafür keine api-Unterstützung so weit 🙁 ...
/sys/class/net/<interface>/operstate
...auf FreeBSD 11
cat: /sys/class/net/em0/operstate: No such file or directory
Ich sehe. Gibt es ein äquivalent zu
/sys/class/net
?Ich konnte es nicht sehen. Ich würde gerne wissen, den Gegenwert in FreeBSD.
InformationsquelleAutor myuce