Refactor and comments

This commit is contained in:
Babak Farrokhi 2016-06-14 16:39:44 +04:30
parent 403a583942
commit acd8602891
Signed by: farrokhi
GPG Key ID: 6B267AD85D632E9A

View File

@ -111,7 +111,7 @@ def flags_to_text(flags):
else: else:
text_flags.append('--') text_flags.append('--')
return (' '.join(text_flags)) return ' '.join(text_flags)
def dnsping(host, server, dnsrecord, timeout, count): def dnsping(host, server, dnsrecord, timeout, count):
@ -124,11 +124,11 @@ def dnsping(host, server, dnsrecord, timeout, count):
answers = None answers = None
resolver.use_edns(edns=True, payload=0, ednsflags=8) resolver.use_edns(edns=True, payload=0, ednsflags=8)
response_time = [] response_times = []
i = 0 i = 0
for i in range(count): for i in range(count):
if shutdown: if shutdown: # user pressed CTRL+C
break break
try: try:
stime = time.time() stime = time.time()
@ -140,18 +140,18 @@ def dnsping(host, server, dnsrecord, timeout, count):
pass pass
else: else:
elapsed = (etime - stime) * 1000 # convert to milliseconds elapsed = (etime - stime) * 1000 # convert to milliseconds
response_time.append(elapsed) response_times.append(elapsed)
r_sent = i + 1 r_sent = i + 1
r_received = len(response_time) r_received = len(response_times)
r_lost = r_sent - r_received r_lost = r_sent - r_received
r_lost_percent = (100 * r_lost) / r_sent r_lost_percent = (100 * r_lost) / r_sent
if response_time: if response_times:
r_min = min(response_time) r_min = min(response_times)
r_max = max(response_time) r_max = max(response_times)
r_avg = sum(response_time) / r_received r_avg = sum(response_times) / r_received
if len(response_time) > 1: if len(response_times) > 1:
r_stddev = stdev(response_time) r_stddev = stdev(response_times)
else: else:
r_stddev = 0 r_stddev = 0
else: else:
@ -163,19 +163,20 @@ def dnsping(host, server, dnsrecord, timeout, count):
if answers: if answers:
flags = answers.response.flags flags = answers.response.flags
return (server, r_avg, r_min, r_max, r_stddev, r_lost_percent, flags) return server, r_avg, r_min, r_max, r_stddev, r_lost_percent, flags
def main(): def main():
try: try:
signal.signal(signal.SIGTSTP, signal.SIG_IGN) # ignore CTRL+Z signal.signal(signal.SIGTSTP, signal.SIG_IGN) # ignore CTRL+Z
signal.signal(signal.SIGINT, signal_handler) # ignore CTRL+C signal.signal(signal.SIGINT, signal_handler) # catch CTRL+C
except AttributeError: # Some systems may not support all signals except AttributeError: # Some systems (e.g. Windows) may not support all signals
pass pass
if len(sys.argv) == 1: if len(sys.argv) == 1:
usage() usage()
# defaults
dnsrecord = 'A' dnsrecord = 'A'
count = 10 count = 10
waittime = 5 waittime = 5