File: D:/bin/scripts/python3.4/utils/dnstest.py
# DNS test for spam blacklists
# (SS,02/04/2017)
# (SS,24/04/2019) added time taken
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()
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')
# 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('')
finish = datetime.datetime.now()
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')