Я пытаюсь найти способ найти CDN, обслуживающий определенный домен в Python.
Моя идея состоит в том, чтобы использовать поиск DNS для чтения поля CNAME в ответе. Из этого я могу сопоставить ответ CNAME с определенным провайдером DNS. Мне известно об аналогичной угрозе в Как я могу отфильтровать домены, обслуживаемые CDN, из списка доменных имен?. Однако, как там подчеркивается, нет гарантии получения CNAME для каждого тестируемого домена. Тогда мне интересно, есть ли другой способ найти соответствующий CDN для домена, когда CNAME не находится в ответе в Python. До сих пор я пробовал:
# I am using Python 3.7.0 and the dnspython library
import dns.resolver
dns_results = dns.resolver.query('youtube.com', 'CNAME')
Я получаю сообщение об ошибке:
NoAnswer: The DNS response does not contain an answer to the question: youtube.com. IN CNAME
Когда я ожидал, что ответ будет Google.
Спасибо за помощь.
youtube.com
— это доменное имя, и, следовательно, в его вершине (при непосредственном запросе к нему) вы не можете иметь записиCNAME
, это соответствует спецификациям DNS: записьCNAME
не может сосуществовать ни с чем другим, а вершина уже имеет записиNS
иSOA
. Любое другое имя ниже вершины может иметьCNAME
, если оно не имеет другого типа записи. - person Patrick Mevzek   schedule 09.08.2019