Fix handling invalid TTL and some output string justifications (fix #26, #27)

This commit is contained in:
Babak Farrokhi 2016-08-22 15:58:58 +04:30
parent 93b0d6ec51
commit 50934cbe91
Signed by: farrokhi
GPG Key ID: 6B267AD85D632E9A

View File

@ -25,9 +25,10 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import os
import getopt
import ipaddress
import os
import signal
import socket
import sys
@ -167,6 +168,7 @@ def dnsping(host, server, dnsrecord, timeout, count, use_tcp=False, use_edns=Fal
if answers is not None:
flags = answers.response.flags
if answers.rrset is not None:
ttl = answers.rrset.ttl
return server, r_avg, r_min, r_max, r_stddev, r_lost_percent, flags, ttl
@ -237,7 +239,7 @@ def main():
width = maxlen(f)
blanks = (width - 5) * ' '
print('server ', blanks, ' avg(ms) min(ms) max(ms) stddev(ms) lost(%) ttl flags')
print((90 + width) * '-')
print((93 + width) * '-')
for server in f:
# check if we have a valid dns server address
if server.lstrip() == '': # deal with empty lines
@ -260,11 +262,12 @@ def main():
continue
try:
(s, r_avg, r_min, r_max, r_stddev, r_lost_percent, flags, ttl) = dnsping(hostname, s, dnsrecord, waittime,
(s, r_avg, r_min, r_max, r_stddev, r_lost_percent, flags, ttl) = dnsping(hostname, s, dnsrecord,
waittime,
count, use_tcp=use_tcp,
use_edns=use_edns)
except dns.resolver.NXDOMAIN:
print('%s: NXDOMAIN' % (server))
print('%-15s NXDOMAIN' % (server))
continue
except Exception as e:
print('%s: %s' % (server, e))
@ -272,8 +275,13 @@ def main():
s = server.ljust(width + 1)
text_flags = flags_to_text(flags)
print("%s %-8.3f %-8.3f %-8.3f %-8.3f %%%-3d %-5.0f %21s" % (
s, r_avg, r_min, r_max, r_stddev, r_lost_percent, ttl, text_flags), flush=True)
s_ttl = str(ttl)
if s_ttl == "None":
s_ttl = "N/A"
print("%s %-8.3f %-8.3f %-8.3f %-8.3f %%%-3d %-8s %21s" % (
s, r_avg, r_min, r_max, r_stddev, r_lost_percent, s_ttl, text_flags), flush=True)
except Exception as e:
print('%s' % (server, e))