Python - Erkennen, ob der remote-computer eingeschaltet ist
So, ich habe eine Anwendung in Python, aber ich möchte wissen, ob die computer, die die Anwendung ausgeführt wird) ist, von einem anderen remote-computer.
Gibt es eine Möglichkeit, dies zu tun? Ich dachte, um UDP-Pakete zu schicken, um eine Art keep-alive, mit einem Zähler. Ex. alle 5 Minuten sendet der client ein UDP - 'keep-alive' - Paket an den server. Vielen Dank im Voraus!
- Ich denke, deine Idee ist auf dem richtigen Weg, was hast du bisher ausprobiert?
- Entweder der Titel ist irreführend, oder Sie wollen einfach nur, um zu erkennen, wenn die Anwendung ausgeführt wird. Wenn später dann jede Art von Ping zu tun.
- Ich Stimme w/ @Ma3x, diese Frage ist wirklich nicht viel zu tun haben, w/ Python.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Ihr Ziel ist eigentlich, um zu testen, ob ein bestimmter Dienst läuft auf dem remote-Rechner, könnten Sie testen, ob der Netzwerk-port, dass dieser Dienst ausgeführt werden soll, ist erreichbar. Beispiel:
Wenn die Anwendung, die Sie testen möchten, für die ist ausgelegt auf z.B. port 1337, dann überprüfen Sie diesen Anschluss.
Zuerst sollten Sie wissen, es gibt keine standard-Weg, um festzustellen, ob ein computer eingeschaltet ist oder nicht, und das ist nicht die Sprache/Plattform abhängig. Ein computer vortäuschen kann jeder Staat Sie versuchen, zu prüfen.
Aber die üblichen Weise um zu überprüfen, ob ein computer sendet eine Ping (ICMP Echo Request). Diese Antwort zeigt, wie das senden einer Ping mit Python.
Es scheint, wie das, was Sie suchen ist ein Netzwerk - /host-monitoring-tool, oder einfach nur eine simple heart beat-monitor. Abhängig von den spezifischen Gegebenheiten (wie etwa die Anzahl der hosts zu überwachen), so etwas wie Nagios, Munin oder Herzschlag helfen könnte.
Fügen Sie eine web-server zu Ihrem app.
http://www.tornadoweb.org/en/stable/
http://webpy.org/
ja das ist der Weg zu gehen. Art wie das versenden von heartbeat ping. Seit der UDP-und da ist es nur eine header-Nachricht, die Sie können, reduzieren Sie die Frequenz auf sagen wir 10 Sekunden. Dies sollte nicht zu einem messbaren system perf Abbau seit seiner nur 2 Systeme, über die wir sprechen.
Fühle ich mich hier, UDP könnte besser sein, im Vergleich zu TCP. Seine leichte, nicht verbrauchen eine Menge von system-Ressourcen und ist theoretisch schneller. Nachteil wäre, dass es sein könnte, packet-loss. Kann man umgehen, indem man eine gewisse Logik, wie wenn 10 Pakete (Abstand 10 Sekunden auseinander) nicht empfangen werden nacheinander deklarieren Sie dann die anderen system nicht erreichbar.