pydoh/docs/quickstart.md

64 lines
1.6 KiB
Markdown
Raw Normal View History

2026-07-19 23:23:04 +05:00
# quickstart
## установка
```
pip install pydoh
```
## разовый резолвинг
```python
import pydoh
ips = pydoh.resolve("example.com")
print(ips) # ['93.184.216.34']
```
`resolve()` возвращает список строк-адресов, первый обычно и есть тот, что нужен.
## ipv6
```python
ips = pydoh.resolve6("example.com")
```
или через параметр:
```python
pydoh.resolve("example.com", record_type=28)
```
## подменить резолвинг во всём приложении
самый частый кейс — не переписывать код, а просто подменить как питон резолвит домены:
```python
import pydoh
pydoh.patch_socket()
import requests
requests.get("https://example.com") # уже через DoH, без изменений в коде requests
```
ставь `patch_socket()` в самом начале скрипта, до импорта/использования сетевых библиотек.
вернуть как было:
```python
pydoh.unpatch_socket()
```
## свой DoH-провайдер
если хочешь резолвить через свой сервер, а не через cloudflare/google/quad9:
```python
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](https://www.rfc-editor.org/rfc/rfc8484) (`POST` с телом `application/dns-message`).