DNS over HTTPS based on aiohttp and async_dns
Project description
async-doh
DNS over HTTPS based on aiohttp and async_dns.
Installation
$ pip install async-doh
Usage
Command-line
usage: python3 -m async_doh.client [-h] [-n NAMESERVERS [NAMESERVERS ...]] [-t TYPES [TYPES ...]] hostnames [hostnames ...]
Async DNS resolver with DoH
positional arguments:
hostnames the hostnames to query
optional arguments:
-h, --help show this help message and exit
-n NAMESERVERS [NAMESERVERS ...], --nameservers NAMESERVERS [NAMESERVERS ...]
name servers
-t TYPES [TYPES ...], --types TYPES [TYPES ...]
query types, default as `any`
Examples:
$ python3 -m async_doh.client -n https://223.5.5.5/dns-query -t ANY -- www.google.com
Client
import asyncio
import aiohttp
from async_doh.client import DoHClient
async def main():
async with DoHClient() as client:
result = await client.query('https://1.1.1.1/dns-query', 'www.google.com', 'A')
print('query:', result)
result = await client.query_json('https://1.1.1.1/dns-query', 'www.google.com', 'A')
print('query_json:', result)
asyncio.run(main())
Server
from aiohttp import web
from async_doh.server import application
web.run(application)
Now you have http://localhost:8080/dns-query
as an endpoint.
Patching async_dns
By importing the patch, async_dns will support queries throught HTTPS (aka DNS over HTTPS):
import asyncio
from async_dns.core import types
from async_dns.resolver import ProxyResolver
from async_doh.client import patch
async def main():
revoke = await patch()
resolver = ProxyResolver(proxies=['https://dns.alidns.com/dns-query'])
res, _ = await resolver.query('www.google.com', types.A)
print(res)
await revoke()
asyncio.run(main())
References
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
async-doh-0.3.0a0.tar.gz
(6.2 kB
view hashes)
Built Distribution
Close
Hashes for async_doh-0.3.0a0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 01d72bae7a87bb9d3c1033d1c0c3869eec0f7f2abf494706f1e930f9e0f3e6fb |
|
MD5 | 478e888f24b96749bf866a5963ac7992 |
|
BLAKE2b-256 | c16074168bce4c20a79a05a79a2c2b99790cd5b371b6cce0a436f715f0227b55 |