from dns.resolver import NXDOMAIN, query
from dns.reversename import from_address

__all__ = ['NXDOMAIN','resolve']

# Yes this will give false positives. Fix it if you want :)
ip_address = re.compile(r'\d{1,3}(?:\.\d{1,3})')

def resolve(address):
    if ip_address.match(address):
        return query(from_address(address), 'PTR').response.answer[0][0].to_text()[:-1]
    else:
        return query(address).response.answer[-1].items[0].address

