blob: a8ecd9adf0109bf2d2f4879fe877bfff92468e47 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
#!/usr/bin/env python3
# Using Discovery of Designated Resolvers (synchronous I/O)
import dns.resolver
res = dns.resolver.Resolver(configure=False)
res.nameservers = ["1.1.1.1"]
# Invoke try_ddr() to attempt to upgrade the connection via DDR
res.try_ddr()
# Do a sample resolution
for rr in res.resolve("www.google.com", "A"):
print(rr.address)
# Note that the nameservers have been upgraded
print(res.nameservers)
# Using Discovery of Designated Resolvers (asynchronous I/O)
# We show using asyncio, but if you comment out asyncio lines
# and uncomment the trio lines, it will work with trio too.
import asyncio
# import trio
import dns.asyncresolver
async def amain():
res = dns.asyncresolver.Resolver(configure=False)
res.nameservers = ["8.8.8.8"]
await res.try_ddr()
for rr in await res.resolve("www.google.com", "A"):
print(rr.address)
print(res.nameservers)
asyncio.run(amain())
# trio.run(amain)
|