Lokales Netzwerk-Ping in Python

8

Weiß jemand, wie man mit Python einen lokalen Host anpingt, um zu sehen, ob er aktiv ist oder nicht? Wir (mein Team und ich) haben bereits versucht,

zu verwenden %Vor%

Aber die Antwort für das Ziel nicht erreichbar ist die gleiche wie die Antwort für den Host ist.

Danke für Ihre Hilfe.

    
Justin Gardner 06.10.2011, 17:55
quelle

6 Antworten

11

Benutze das ...

%Vor%

Wenn Sie dieses Skript unter Unix / Linux verwenden, ersetzen Sie -n mit -c! Das ist alles:)

    
Avi Mehenwal 19.02.2013 13:30
quelle
6

Ich habe festgestellt, dass die Verwendung von os.system (...) zu falsch positiven Ergebnissen führt (wie das OP sagte, "Zielhost nicht erreichbar" == 0).

Wie bereits erwähnt, funktioniert subprocess.Popen. Der Einfachheit halber empfehle ich, dies zu tun, gefolgt von der Analyse der Ergebnisse. Du kannst das leicht machen wie:

%Vor%

Überprüfen Sie einfach die verschiedenen Ausgänge, die Sie überprüfen möchten, aus den Ping-Ergebnissen. Machen Sie ein "das" in "das", überprüfen Sie es.

Beispiel:

%Vor%     
Michael Flyger 09.08.2013 21:34
quelle
5

Ich habe vor einiger Zeit ein kleines Programm programmiert. Es ist möglicherweise nicht genau das, wonach Sie suchen, aber Sie können immer ein Programm auf dem Host-Betriebssystem ausführen, das beim Start einen Socket öffnet. Hier ist das Ping-Programm selbst:

%Vor%

Und hier haben Sie das Programm, das die Ping-Anfrage erhalten kann:

%Vor%

Um ein Programm auszuführen, ohne es anzuzeigen, speichern Sie die Datei einfach als .pyw statt als .py. Es macht es unsichtbar, bis der Benutzer laufende Prozesse überprüft.

Ich hoffe, es hat dir geholfen

    
CamIce 01.03.2013 14:34
quelle
1

Versuchen Sie Folgendes:

%Vor%

-o wartet nur auf ein Paket

-W 3000 gibt es nur 3000 ms, um auf das Paket zu antworten.

-c 3 lässt es ein paar Mal versuchen, so dass Ihr Ping nicht für immer ausgeführt wird

    
jdi 06.10.2011 18:04
quelle
1

Der Einfachheit halber verwende ich selbstgemachte Funktionen auf Socket-Basis.

%Vor%

Wenn Ip: Port erreichbar ist, geben Sie True

zurück

Wenn Sie Ping simulieren möchten, beachten Sie bitte ping.py

    
KJoker 16.02.2017 06:19
quelle
0

Verwenden Sie dies und analysieren Sie die Zeichenfolgenausgabe

%Vor%     
yo_man 06.10.2011 18:05
quelle

Tags und Links