File: D:/bin/scripts/python3.4/utils/dnstest2.py
# DNS test for spam blacklists
# (SS,02/04/2017)
# (SS,22/05/2019) version for normal checks
import dns.resolver
import sys
import datetime
import time
def reverse(ip):
if len(ip) <= 1:
return ip
l = ip.split('.')
return '.'.join(l[::-1])
def lookup(is_ip, ip_address, host):
if is_ip:
full_host = reverse(ip_address) + '.' + host
else:
full_host = ip_address + '.' + host
print(full_host)
try:
answers = dns.resolver.query(full_host, 'A')
for rdata in answers:
print(rdata.address)
except:
e = sys.exc_info()[0]
e2 = sys.exc_info()[1]
print( "Error: %s" % e)
print( "Error: %s" % e2)
print()
# (SS,22/5/19) lookup modified for standard checj
def lookup_host(host):
print(host)
try:
#answers = dns.resolver.query(host, 'A')
answers = dns.resolver.query(host, 'MX')
for rdata in answers:
#print(rdata.address)
print(rdata.to_text())
except:
e = sys.exc_info()[0]
e2 = sys.exc_info()[1]
print( "Error: %s" % e)
print( "Error: %s" % e2)
print()
def blacklist_ip_check(ip):
lookup(True, ip, 'zen.spamhaus.org')
lookup(True, ip, 'bl.spamcop.net')
lookup(True, ip, 'b.barracudacentral.org')
lookup(True, ip, 'ubl.unsubscore.com')
lookup(True, ip, 'dnsbl.sorbs.net')
lookup(True, ip, 'truncate.gbudb.net')
lookup(True, ip, 'ix.dnsbl.manitu.net')
lookup(True, ip, 'psbl.surriel.com')
def blacklist_url_check(url):
actual_url = url
if url == '':
actual_url = 'test.surbl.org'
lookup(False, actual_url, 'multi.surbl.org')
if url == '':
actual_url = 'dbltest.com'
lookup(False, actual_url, 'dbl.spamhaus.org')
# lookup('178.243.74.251', 'zen.spamhauszzz.org')
# (SS,22/5/19)
def normal_host_check():
lookup_host('itpartnership.com')
lookup_host('hyperflight.co.uk')
lookup_host('google.com')
lookup_host('google.co.uk')
lookup_host('bbc.co.uk')
lookup_host('microsoft.com')
lookup_host('apple.com')
lookup_host('gmail.com')
lookup_host('outlook.com')
lookup_host('hotmail.com')
lookup_host('yahoo.com')
lookup_host('icloud.com')
lookup_host('facebook.com')
lookup_host('twitter.com')
lookup_host('amazon.co.uk')
# if paramete provided then use this as the IP address, else default to '127.0.0.2'
#if len(sys.argv) == 2:
#ip_address = sys.argv[1]
#else:
#ip_address = '127.0.0.2'
start = datetime.datetime.now()
#blacklist_ip_check(ip_address)
#blacklist_url_check('')
normal_host_check()
finish = datetime.datetime.now()
#print('time taken: ', (finish - start).total_seconds(), 'secs')
print('time taken: ', round((finish - start).total_seconds(), 3), 'secs')
#blacklist_url_check('twitter.com')
#blacklist_ip_check('178.243.74.251')
#blacklist_ip_check('8.8.8.8')