1.7 KiB
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для AAAAproviders— список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.