pydoh/docs/api.md
2026-07-19 23:23:04 +05:00

1.7 KiB

api

resolve(hostname, record_type=1, providers=None, timeout=3.0, use_cache=True) -> list[str]

резолвит хост, возвращает список IP строками. кидает ResolveError если все провайдеры упали.

  • record_type — 1 для A (по умолчанию), 28 для AAAA
  • providers — список Provider, по умолчанию pydoh.providers.DEFAULT_PROVIDERS (cloudflare, google, quad9 по порядку)
  • timeout — секунды на один HTTPS-запрос к одному провайдеру
  • use_cache — читать/писать во внутренний кэш по TTL из ответа

resolve4(hostname, **kwargs) -> list[str]

то же самое что resolve(hostname, record_type=1, **kwargs).

resolve6(hostname, **kwargs) -> list[str]

то же самое что resolve(hostname, record_type=28, **kwargs).

patch_socket() -> None

подменяет socket.getaddrinfo на версию через resolve(). IP-литералы (127.0.0.1 и т.п.) пропускает мимо DoH напрямую. идемпотентно — повторный вызов ничего не ломает.

unpatch_socket() -> None

возвращает оригинальный socket.getaddrinfo.

ResolveError

исключение, вылетает из resolve()/resolve4()/resolve6() если ни один провайдер не ответил валидно.

pydoh.providers.Provider

Provider(name: str, host: str, path: str)

именованный tuple, описывает DoH-эндпоинт. готовые: pydoh.CLOUDFLARE, pydoh.GOOGLE, pydoh.QUAD9.