improved error handling

This commit is contained in:
Babak Farrokhi 2016-04-07 15:23:38 +04:30
parent fb68ba76d7
commit 10fcdb8413

View File

@ -132,7 +132,7 @@ def main():
answers = resolver.query(hostname, dnsrecord, ipttl = ttl) answers = resolver.query(hostname, dnsrecord, ipttl = ttl)
except dns.resolver.NoNameservers as e: except dns.resolver.NoNameservers as e:
if not quiet: if not quiet:
print("no response:", e) print("no or bad response:", e)
exit(1) exit(1)
except dns.resolver.NXDOMAIN as e: except dns.resolver.NXDOMAIN as e:
if not quiet: if not quiet:
@ -152,6 +152,7 @@ def main():
curr_addr = None curr_addr = None
curr_host = None curr_host = None
try: # expect ICMP response try: # expect ICMP response
_, curr_addr = icmp_socket.recvfrom(512) _, curr_addr = icmp_socket.recvfrom(512)
curr_addr = curr_addr[0] curr_addr = curr_addr[0]
@ -168,10 +169,10 @@ def main():
if reached: if reached:
curr_addr = dnsserver curr_addr = dnsserver
elapsed -= timeout*1000 elapsed -= timeout * 1000
try: try:
if curr_addr != "*": if curr_addr:
curr_name = socket.gethostbyaddr(curr_addr)[0] curr_name = socket.gethostbyaddr(curr_addr)[0]
except socket.error: except socket.error:
curr_name = curr_addr curr_name = curr_addr
@ -179,11 +180,9 @@ def main():
print("unxpected error: ", sys.exc_info()[0]) print("unxpected error: ", sys.exc_info()[0])
if curr_addr: if curr_addr:
curr_host = "%s (%s)" % (curr_name, curr_addr) print("%d\t%s (%s) %d ms" % (ttl, curr_name, curr_addr, elapsed))
else: else:
curr_host = "*" print("%d\t *" % ttl)
print("%d\t%s %d ms" % (ttl, curr_host, elapsed))
ttl += 1 ttl += 1
hops += 1 hops += 1