Ich habe ein Python-Skript, das nur funktioniert, wenn mein Server verfügbar ist. Bevor also das Skript beginnt, möchte ich meinen Server anpingen oder lieber die Verfügbarkeit des Servers überprüfen.Ping-Server in Python ohne Root-Berechtigungen
Es gibt bereits einige verwandte SO-Fragen. Z. B
-
response = pyping.ping('Your IP') if response.ret_code == 0: print("reachable") else: print("unreachable")
-
response = os.system("ping -c 1 " + hostname)
Diese Antworten funktioniert gut, aber nur als Root-Benutzer! Wenn ich verwende diese Lösungen als gemeinsamen Benutzer i die folgende Fehlermeldung erhalten:
ping: Lacking privilege for raw socket.
Ich brauche eine Lösung, dass ich das als gemeinsamen Benutzer tun kann, weil ich dieses Skript in einem jenkins Job ausgeführt und hat nicht die Option, als root zu laufen.
Muss es ein Ping sein? Was ist mit einem HTTP GET oder einem einfachen UDP-Paket? –
Hmm, ich habe nicht darüber nachgedacht. Das erste, was mir in den Sinn kommt, war das Pingen, also versuche ich es mit Ping zu lösen. Und es ist kurz und einfach. Aber wenn Sie eine andere Lösung haben, können Sie es als Antwort bitte unten schreiben. – Oni1
Warum versuchen Sie die Verfügbarkeit zu überprüfen? Versuchen Sie, eine schnelle Überprüfung durchzuführen, bevor Sie versuchen, einen Dienst zu verwenden, der auf einem bekannten Port ausgeführt wird? Wenn ja, würde ich lieber versuchen, eine Verbindung zu dem Dienst herzustellen, anstatt zuerst zu versuchen, ihn anzupingen, und dann eine Verbindung zu dem "echten" Dienst herzustellen. –