#!/usr/bin/env python # -*- coding: utf-8 -*- # see also https://mail.python.org/pipermail/python-list/2009-November/559669.html # pip install pydns import signal import socket try: import DNS except: DNS = False def DNSResolve(s): if DNS: DNS.ParseResolvConf() # Windows? r = DNS.DnsRequest(name=s, qtype='A') a = r.req() return a.answers[0]['data'] else: return socket.gethostbyname(s) def dns_timeout(a, b): raise Exception("Oh Noes! a DNS lookup timeout!") def canIHasIP(domain_name, timeout=3): signal.signal(signal.SIGALRM, dns_timeout) signal.alarm(timeout) try: ip = DNSResolve(domain_name) except Exception as exc: # print(exc) return False signal.alarm(0) return ip