Skip to content

Instantly share code, notes, and snippets.

@filipecifali
Created June 18, 2015 23:42
Show Gist options
  • Save filipecifali/32cf402cd6b7f209e703 to your computer and use it in GitHub Desktop.
Save filipecifali/32cf402cd6b7f209e703 to your computer and use it in GitHub Desktop.
Comparing 2 DNS server results
from tcolors import bcolors
from dns.resolver import Resolver
sys_r = Resolver()
dns1 = ['a.sec.dns.br', 'b.sec.dns.br']
dns2 = ['dns1.stabletransit.com', 'dns2.stabletransit.com']
domain = 'python.org.br'
queries = {
# '':'a',
# '':'mx',
# '':'txt',
'al':'cname',
'am':'cname',
'amazonses':'txt',
'associacao':'a',
'associados':'cname',
'ba':'cname',
'ce':'cname',
'df':'cname',
'es':'cname',
'go':'cname',
'ma':'cname',
'mail':'cname',
'mg':'cname',
'ms':'cname',
'mt':'cname',
'ns':'a',
'pb':'cname',
'pe':'cname',
'people':'a',
'plone':'a',
'pr':'cname',
'projetos':'a',
'pug-ce':'a',
'pug-pe':'cname',
'rj':'cname',
'rn':'cname',
'rs':'cname',
'se':'cname',
'sp':'cname',
'wiki':'a',
'www':'cname'
}
dns_registrobr = [ item.address for server in dns1 for item in sys_r.query(server) ]
dns_rackspace = [ item.address for server in dns2 for item in sys_r.query(server) ]
for query, rtype in queries.iteritems():
tmp = []
sys_r.nameservers = dns_registrobr
try:
for record in sys_r.query('.'.join([query, domain]), rtype).rrset.items:
tmp.append(record)
except:
tmp.append(None)
sys_r.nameservers = dns_rackspace
try:
for record in sys_r.query('.'.join([query, domain]), rtype).rrset.items:
tmp.append(record)
except:
tmp.append(None)
if tmp[0] is None and tmp[1] is None:
print bcolors.WARNING + "Nope:", query + bcolors.ENDC
elif tmp[0] == tmp[1]:
print bcolors.OKGREEN + "Ok:", query + bcolors.ENDC
else:
print bcolors.FAIL + "Not ok:", query + bcolors.ENDC
@filipecifali
Copy link
Author

tcolors.py:

class bcolors:
HEADER = '\033[95m'
OKBLUE = '\033[94m'
OKGREEN = '\033[92m'
WARNING = '\033[93m'
FAIL = '\033[91m'
ENDC = '\033[0m'
BOLD = '\033[1m'
UNDERLINE = '\033[4m'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment