2.3 KiB
faq
зачем это вообще
обычный DNS — незашифрованный UDP-пакет к резолверу провайдера, кто угодно на пути видит какой домен ты спрашиваешь. в РФ это самый дешёвый способ блокировки — провайдер просто не отвечает на запрос про заблокированный домен. DoH заворачивает тот же запрос в HTTPS, провайдер видит только "коннект к 1.1.1.1", а не имя домена.
cloudflare тоже забанен, что делать
сам cloudflare (его IP-диапазоны) массово не блокируют — через него живёт куча обычных сайтов, задеть его целиком означает положить половину интернета. а вот конкретно cloudflare-dns.com как известный анти-цензурный эндпоинт — уже могут таргетить точечно по SNI.
если это произошло — pydoh сам едет на dns.google, потом на dns.quad9.net (см. DEFAULT_PROVIDERS), без твоего участия.
если и туда достанут — тогда нужен свой DoH-эндпоинт на домене, которого нет в блок-листах, см. quickstart.md.
а это законно
pydoh просто шлёт DNS-запросы другим транспортом (HTTPS вместо UDP). это тот же протокол, который сейчас включён по умолчанию в Firefox/Chrome для миллионов пользователей.
почему не requests/httpx
zero deps — библиотека не тянет вообще ничего кроме stdlib. весь HTTPS через http.client+ssl, которые уже есть в питоне из коробки.
поддерживает DNSSEC?
нет. и не планируется — это резолвер для обхода блокировок и приватности, а не для валидации подписей.