Python Ping speichern/abfragen?
Code:
import os
print("Ping: ", (os.system('ping ' + "www.google.com")))
Konsole:
Ping wird ausgeführt für www.google.com [142.250.186.132] mit 32 Bytes Daten:
Antwort von 142.250.186.132: Bytes=32 Zeit=11ms TTL=59
Antwort von 142.250.186.132: Bytes=32 Zeit=11ms TTL=59
Antwort von 142.250.186.132: Bytes=32 Zeit=11ms TTL=59
Antwort von 142.250.186.132: Bytes=32 Zeit=14ms TTL=59
Ping-Statistik für 142.250.186.132:
Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0
(0% Verlust),
Ca. Zeitangaben in Millisek.:
Minimum = 11ms, Maximum = 14ms, Mittelwert = 11ms
Ping: 0
Aber, wie komme ich jetzt an den Ping der in der Konsole steht, den will ich ja als Var speichern, und weiterverarbeiten. Aber wenn ich es speichere ist der Ping = 0, egal was in der Konsole steht.
3 Antworten
# So sollte es mit os gehen
import os
def ping(host):
param = '-n' if platform.system().lower()=='windows' else '-c'
response = os.system(f"ping {param} 1 " + host)
return True if response == 0 else False
print(ping("www.google.com"))
# So sollte es mit subprocess gehen
import platform
import subprocess
def ping(host):
param = '-n' if platform.system().lower()=='windows' else '-c'
command = ['ping', param, '1', host]
response = subprocess.call(command)
return True if response == 0 else False
print(ping("www.google.com"))
Woher ich das weiß:Hobby
Hättest du die Dokumentation zu os.system gelesen, dann hättest du die Hälfte deiner Frage gar nicht erst zu stellen brauchen.
Die andere Hälfte der Frage beantwortet dir die Dokumentation der Module subprocess und re.
Du musst dafür Subprocess verwenden.