1.6 KiB
1.6 KiB
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).