Nižšie uvedený program sa vytlačí len vtedy, ak je server spustený nahor alebo nadol pyping
, ale musím vytlačiť výstup s hodnotou TTL (time to live).
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)
Chlapci, ak máte nejaké ďalšie nápady, ako získať hodnotu ttl láskavo post it ..
odpovede:
0 pre odpoveď č. 1používať Popen z vlákno modul
môžeš použiť returncode
úspechu velenia if >0
potom nie je úspech
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
na Linuxe prejsť ďalšie -c
spolu s príkazom, aby sa zabránilo nekonečnému ping