Add verbose mode to print actual response(s) (FIX #28)
This commit is contained in:
parent
6c1d7313fe
commit
62f66a9b3c
24
dnseval.py
24
dnseval.py
@ -56,6 +56,7 @@ usage: %s [-h] [-f server-list] [-c count] [-t type] [-w wait] hostname
|
|||||||
-t --type DNS request record type (default: A)
|
-t --type DNS request record type (default: A)
|
||||||
-T --tcp Use TCP instead of UDP
|
-T --tcp Use TCP instead of UDP
|
||||||
-e --edns Disable EDNS0 (Default: Enabled)
|
-e --edns Disable EDNS0 (Default: Enabled)
|
||||||
|
-v --verbose Print actual dns response
|
||||||
""" % (__PROGNAME__, __VERSION__, __PROGNAME__))
|
""" % (__PROGNAME__, __VERSION__, __PROGNAME__))
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
@ -171,7 +172,7 @@ def dnsping(host, server, dnsrecord, timeout, count, use_tcp=False, use_edns=Fal
|
|||||||
if len(answers.response.answer) > 0:
|
if len(answers.response.answer) > 0:
|
||||||
ttl = answers.response.answer[0].ttl
|
ttl = answers.response.answer[0].ttl
|
||||||
|
|
||||||
return server, r_avg, r_min, r_max, r_stddev, r_lost_percent, flags, ttl
|
return server, r_avg, r_min, r_max, r_stddev, r_lost_percent, flags, ttl, answers
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
@ -192,11 +193,12 @@ def main():
|
|||||||
fromfile = False
|
fromfile = False
|
||||||
use_tcp = False
|
use_tcp = False
|
||||||
use_edns = True
|
use_edns = True
|
||||||
|
verbose = False
|
||||||
hostname = 'wikipedia.org'
|
hostname = 'wikipedia.org'
|
||||||
|
|
||||||
try:
|
try:
|
||||||
opts, args = getopt.getopt(sys.argv[1:], "hf:c:t:w:Te",
|
opts, args = getopt.getopt(sys.argv[1:], "hf:c:t:w:Tev",
|
||||||
["help", "file=", "count=", "type=", "wait=", "tcp", "edns"])
|
["help", "file=", "count=", "type=", "wait=", "tcp", "edns", "verbose"])
|
||||||
except getopt.GetoptError as err:
|
except getopt.GetoptError as err:
|
||||||
print(err)
|
print(err)
|
||||||
usage()
|
usage()
|
||||||
@ -222,6 +224,8 @@ def main():
|
|||||||
use_tcp = True
|
use_tcp = True
|
||||||
elif o in ("-e", "--edns"):
|
elif o in ("-e", "--edns"):
|
||||||
use_edns = False
|
use_edns = False
|
||||||
|
elif o in ("-v", "--verbose"):
|
||||||
|
verbose = True
|
||||||
else:
|
else:
|
||||||
print("Invalid option: %s" % o)
|
print("Invalid option: %s" % o)
|
||||||
usage()
|
usage()
|
||||||
@ -262,12 +266,14 @@ def main():
|
|||||||
continue
|
continue
|
||||||
|
|
||||||
try:
|
try:
|
||||||
(s, r_avg, r_min, r_max, r_stddev, r_lost_percent, flags, ttl) = dnsping(hostname, s, dnsrecord,
|
(s, r_avg, r_min, r_max, r_stddev, r_lost_percent, flags, ttl, answers) = dnsping(hostname, s,
|
||||||
|
dnsrecord,
|
||||||
waittime,
|
waittime,
|
||||||
count, use_tcp=use_tcp,
|
count,
|
||||||
|
use_tcp=use_tcp,
|
||||||
use_edns=use_edns)
|
use_edns=use_edns)
|
||||||
except dns.resolver.NXDOMAIN:
|
except dns.resolver.NXDOMAIN:
|
||||||
print('%-15s NXDOMAIN' % (server))
|
print('%-15s NXDOMAIN' % server)
|
||||||
continue
|
continue
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print('%s: %s' % (server, e))
|
print('%s: %s' % (server, e))
|
||||||
@ -282,6 +288,12 @@ def main():
|
|||||||
|
|
||||||
print("%s %-8.3f %-8.3f %-8.3f %-8.3f %%%-3d %-8s %21s" % (
|
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)
|
s, r_avg, r_min, r_max, r_stddev, r_lost_percent, s_ttl, text_flags), flush=True)
|
||||||
|
if verbose:
|
||||||
|
ans_index = 1
|
||||||
|
for answer in answers.response.answer:
|
||||||
|
print("Answer %d [ %s ]" % (ans_index, answer))
|
||||||
|
ans_index += 1
|
||||||
|
print("")
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print('%s' % (server, e))
|
print('%s' % (server, e))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user