Ich bin neu in Python und programmiere den Pi. Mein Ziel ist es, einen Server wie einen Spieleserver oder eine Website zu pingen und mir mitzuteilen, ob er online oder offline ist.
Bisher habe ich überall gesucht, aber niemand gibt detaillierte Anweisungen dazu. Es kann sein, dass es für jemanden, der bereits in Python programmiert, so "einfach" ist, dass er annimmt, dass es bekannt ist.
Ist das überhaupt in Python möglich?
Antworten:
Hier ist ein schneller und schmutziger Ansatz, der die meisten möglichen Ergebnisse überprüft und eine angemessene Ausgabe liefert:
quelle
GPIO.output(18, False)
am Anfang (vor dertry:
Anweisung) hinzufügen , dass die LED kurz blinkt, wenn auf die Website zugegriffen wird, und sich wieder einschaltet, wenn alles in Ordnung ist (oder nicht, wenn etwas nicht stimmt).GPIO.output(18, False)
am Ende der beidenexcept
Blöcke hinzufügen , um ein Blinken zu verhindern (falls nicht erwünscht)Die RPi.GPIO-Bibliothek ist in Raspbian verfügbar, um GPIO zu steuern. Aufbauend auf der Verwendung der Anforderungsbibliothek können Sie Folgendes tun:
Dadurch wird GPIO 17 eingeschaltet, wenn ein Problem auftritt. aus, wenn alles in Ordnung ist.
Wenn Sie eines dieser Module installieren müssen, tun Sie dies über die Befehlszeile (Terminal) mit:
Alternative:
Wenn Sie auch tatsächliche Latenzen erhalten möchten, ist es wahrscheinlich die einfachste Methode, das
ping
Programm tatsächlich aufzurufen und die Ergebnisse zu analysieren:Auf diese Weise können Sie beispielsweise viele LEDs verwenden und ein Balkendiagramm erstellen, das auf der Ping-Zeit basiert.
quelle
Sie können die Python-Anforderungsbibliothek verwenden:
Die Kurzanleitung finden Sie hier: http://www.python-requests.org/en/latest/user/quickstart/
quelle
sudo pip install requests
sudo apt-get -y install python-dev python-setuptools python-pip
Hier sind einige Programme, mit denen ich meine Systeme überwache. Jede Variation davon könnte als Grundlage für ein Programm verwendet werden, das wie unten beschrieben über PiGPIO auf die Ergebnisse einwirkt.
fping
in Python, um Verzögerungen zu überwachen und festzustellen, ob Systeme aktiv sind.Beachten Sie, dass der Ausgang in stderr ist und so aussieht:
oder
ODER
Sie können diese alternative
cmd
Befehlszeichenfolge im selben Code verwenden:Beachten Sie, dass der Ausgang in stderr ist und so aussieht:
wo das Ergebnis entweder ist
oder
-----------------------------------------------
Um dann externe Geräte zu steuern, empfehle ich immer
piGPIO
piGPIO-Bibliotheksschnittstelle
Beispiele für piGPIO-Bibliotheken
Ich verwende eine ähnliche Methode für einen Ping-Delay-Monitor:
Dadurch wird eine Datendatei erstellt, die wie folgt aussieht:
Die Zeile mit dem
-
ist eine Zeile, in der innerhalb von 3 Sekunden keine Antwort erfolgte.Ich benutze diese Ausgabe mit einem Gnuplot-Programm, um alles zu zeichnen.
um eine Live-Handlung zu bekommen:
Dies ähnelt dem Code, den ich für einen anderen Befehl verwende:
Was ist die maximale / minimale Betriebstemperatur?
quelle