Netzwerke und Clients auflisten

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Herb
User
Beiträge: 15
Registriert: Donnerstag 13. Juni 2013, 20:47

Hallo,

ich suche gerade nach einer einfachen Möglichkeit alle im Ntzwerk befindlichen Rechner bzw. deren IP zu listen. Ist man beispielsweise noch nicht mit einem WLAN verbunden sollen, wie bei einem Smartphone, alle verfügbaren Netzwerke gelistet werden.

Mein erster Ansatz war es IP's in einem loop mit os.system() an zu pingen. Diese Lösung ist ziemlich naiv, ineffektive und löst auch nicht mein ganzes Problem.

Da ich recht zeitnah eine Lösung brauche dachte ich, ich frage schnell mal hier :)
BlackJack

@Herb: Statt `os.system()` sollte man besser das `subprocess`-Modul verwenden. Und statt ``ping`` etwas das effizienter, nämlich parallel mehrere Adressen prüft. Zum Beispiel ``fping``. Oder am besten gleich den Klassiker ``nmap``. Dafür gibt es auch ein Python-Modul das einem den Aufruf abnimmt, die Ausgabe auf XML umstellt und das dann auch noch in eine Python-Datenstruktur parst. Da kann man dann nach dem Scannen mit der `get_all_hosts()`-Methode ganz einfach die IPs abfragen.
Herb
User
Beiträge: 15
Registriert: Donnerstag 13. Juni 2013, 20:47

PS: es sollte sowohl unter OSX als auch unter Windows funktionieren
BlackJack

@Herb: Dann muss man dort eben ``nmap`` installieren. :-)

Ansonsten würde als Minimallösung ja nur `subprocess`, ``ping``, und `threading` übrig bleiben, um selber parallel Pings absetzen zu können.
Antworten