In von mir entwickelten Anwendungen möchte ich häufig eine Netzwerkstatusanzeige für verschiedene Geräte im Netzwerk einfügen. Der einfachste Weg, diese Geräte zu überwachen, besteht darin, sie zu pingen. ICMP-Echos lassen sich jedoch aufgrund von Sicherheitsanforderungen mit Raw-Sockets oder Leistungsproblemen beim Shelling-Out häufig nur schwer in eine Anwendung integrieren ping
. In Situationen, in denen dies kein Problem darstellt, schreibe ich für verschiedene Situationen leicht unterschiedliche Variationen desselben Ping-Codes.
Die meisten Geräte, die ich überwache, sind eingebettete Geräte mit minimalen Netzwerkfunktionen (enthalten jedoch immer ICMP-Echo). Daher muss ich mich an dieses Protokoll halten. Dinge wie das Echo-Protokoll (von Mark in den Kommentaren unten hervorgehoben, danke!) Sind normalerweise nicht vorhanden steht mir nicht zur Verfügung.
Gibt es bereits einen Dienst, der ICMP-Ping-Dienste mit geringem Overhead für eine Nicht-Root-Anwendung bereitstellen kann?
Ich denke darüber nach, einen Dienst zu schreiben, der als Root ausgeführt wird und es anderen Nicht-Root-Anwendungen ermöglicht, eine Verbindung zu ihm herzustellen, Geräte zur Überwachung hinzuzufügen und dann Ping-Zeiten und Netzwerkstatus abzufragen, aber ich möchte ein Rad und mich nicht neu erfinden Ich frage mich, ob so etwas schon existiert.
ping
Befehl selbst auszuführen . Es gibt Optionen, um es stumm zu schalten, und dann können Sie einfach den Beendigungsstatus überprüfen, um festzustellen, ob er erfolgreich war oder nicht.