File: ddr.py

package info (click to toggle)
dnspython 2.7.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,448 kB
  • sloc: python: 34,885; sh: 7; makefile: 4
file content (42 lines) | stat: -rw-r--r-- 950 bytes parent folder | download
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 dns.asyncresolver

# import trio


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)