Сбор DNS-информации для большого количества опечаток / приседаний

Я собираюсь собрать и проанализировать информацию о регистрации DNS большого количества доменных имен. Мои доменные имена такие, как bbc.com, bbc.com.co, bbc.com.a а также bbc.com.aa, Как видите, у меня есть доменные имена опечаток / приседаний на официальных сайтах, таких как bbc.com. Я использую библиотеку python whois и отправляю DNS-запрос whois на эти доменные имена, но для многих из них я получил следующее сообщение: Вот мой код для отправки whois-запроса:

try:
    typo_dns_info = whois.whois(typo)
    if typo_dns_info:
        typo_info[typo] = typo_dns_info
        registered_typo.append(typo)
except:
    pass

и я получил эту ошибку для многих доменных имен:

Socket Error: [Errno 111] Connection refused

Я искал, и я думаю, что, может быть, мне нужно спать мою программу, чтобы отправить DNS-запрос через 1 секунду. Но это мне совсем не помогло. Я не знаю, как лучше всего получить информацию о Whois url?

1 ответ

Решение

Я использую регулярные DNS-запросы, чтобы узнать, существует ли домен. Whois-серверы, как правило, не настроены для запросов большого объема, а некоторые ограничивают частоту запросов для каждого IP-адреса. Обычные DNS-серверы рассчитаны на высокую скорость поиска и не будут выдавать те же ошибки.

Вот немного кода для обнаружения зарегистрированных доменов через dnspython:

try:
    dns.resolver.query(typo, 'A')
    print("%s exists" % typo)
except:
    try:
        x = whois.whois(typo)
        print("%s exists" % typo)
    except:
        print("%s doesn't exist" % typo)
Другие вопросы по тегам