def main(): # Бесконечный цикл while True: # Генерируем домен query_name = (generator(Settings.domain_level, Settings.domain_symbols)) # Проверяем наличие домена в DNS ar = AsyncResolver([query_name+Settings.domain_zone]) resolved = ar.resolve() # Цикл для проверки есть ли ip у домена for host, ip in resolved.items(): # Ловим выход из скрипта signal.signal(signal.SIGINT, signal_handler) # Если ip нету в DNS то проверяем домен через WHOIS, сразу через WHOIS проверять нельзя # Так как это долго и они банят if ip is None: # Выводим информацию что ip нету в DNS print("\033[92m%s could not be resolved.\033[0m" % (host)) # Обращаемся в WHOIS, если домен занят - выводим дату до которой # он зарегистрирован, если свободен то пишем это и записываем # домен в файл try: domain = whois.query(host) print(domain.expiration_date) except Exception: print("\033[95mFREE " + host + "\033[0m") Settings.domainsFoundFile.write(host + '\n') time.sleep(2)
def dispatcher(worker): while True: # Генерируем домен query_name = (generator(Settings.domain_level, Settings.domain_symbols)) # Проверяем наличие домена в DNS ar = AsyncResolver([query_name+Settings.domain_zone]) resolved = ar.resolve() # Цикл для проверки есть ли ip у домена for host, ip in resolved.items(): # Если ip нету в DNS то проверяем домен через WHOIS, сразу через WHOIS проверять нельзя # Так как это долго и они банят if ip is None: # Выводим информацию что ip нету в DNS # print("\033[92m%s could not be resolved.\033[0m" % (host)) # Обращаемся в WHOIS, если домен занят - выводим дату до которой # он зарегистрирован, если свободен то пишем это и записываем # домен в файл try: domain = whois.query(host) print("%s%s taken, expiration date %s%s" % (ConsoleColors.OKBLUE, host, domain.expiration_date, ConsoleColors.ENDC)) except AttributeError: print("%sFREE %s%s" % (ConsoleColors.OKGREEN, host, ConsoleColors.ENDC)) Settings.domainsFoundFile.write(host + '\n') except Exception: print("%sERROR on %s: whois - You have exceeded allowed connection rate%s" % (ConsoleColors.FAIL, host, ConsoleColors.ENDC)) time.sleep(2)