diff options
Diffstat (limited to 'examples/ddr.py')
-rw-r--r-- | examples/ddr.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/examples/ddr.py b/examples/ddr.py new file mode 100644 index 0000000..a8ecd9a --- /dev/null +++ b/examples/ddr.py @@ -0,0 +1,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) |