Das folgende Programm wird nur dann gedruckt, wenn der Server mit oder arbeitet pyping
, aber ich muss die Ausgabe mit TTL-Wert (time to live) drucken.
import pyping
servers = (
"192.168.1.1",
"192.168.1.2",
"192.168.1.3"
)
temp = []
for server in servers:
checker = pyping.ping(server)
if checker.ret_code == 0:
body = "%s Server is UP" % (server)
temp.append(body)
else:
body = "%s Server is Down" % (server)
temp.append(body)
print(temp)
Jungs, wenn Sie andere Ideen haben, um den TTL-Wert zu erhalten, bitte posten Sie es ..
Antworten:
0 für die Antwort № 1benutze Popen aus Unterprozess Modul
Sie können verwenden returncode
Befehlserfolg if >0
dann kein Erfolg
import subprocess
import re
p = subprocess.Popen(["ping","www.google.com"], stdout=subprocess.PIPE)
res=p.communicate()[0]
if p.returncode > 0:
print("server error")
else:
pattern = re.compile("TTL=d*")
print(pattern.search(str(res)).group())
TTL=56
auf linux pass der eine mehr -c
zusammen mit dem Befehl, um endloses Ping zu vermeiden