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

1.6 KiB
Raw Blame History

quickstart

установка

pip install pydoh

разовый резолвинг

import pydoh

ips = pydoh.resolve("example.com")
print(ips)  # ['93.184.216.34']

resolve() возвращает список строк-адресов, первый обычно и есть тот, что нужен.

ipv6

ips = pydoh.resolve6("example.com")

или через параметр:

pydoh.resolve("example.com", record_type=28)

подменить резолвинг во всём приложении

самый частый кейс — не переписывать код, а просто подменить как питон резолвит домены:

import pydoh
pydoh.patch_socket()

import requests
requests.get("https://example.com")  # уже через DoH, без изменений в коде requests

ставь patch_socket() в самом начале скрипта, до импорта/использования сетевых библиотек.

вернуть как было:

pydoh.unpatch_socket()

свой DoH-провайдер

если хочешь резолвить через свой сервер, а не через cloudflare/google/quad9:

from pydoh.providers import Provider

my_provider = Provider(name="mine", host="doh.example.com", path="/dns-query")
ips = pydoh.resolve("example.com", providers=[my_provider])

сервер должен поддерживать RFC 8484 (POST с телом application/dns-message).