Сбор 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)