/ / Wie erhalte ich einen TTL-Wert in pyping python - python, python-2.7

So erhalten Sie den TTL-Wert in pyping python

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 № 1

benutze 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