summaryrefslogtreecommitdiff
path: root/examples/async_dns.py
blob: 297afcb01fd3bcc0dc3f08a2c9a0e051755f2c82 (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
import sys

import trio

import dns.message
import dns.asyncquery
import dns.asyncresolver


async def main():
    if len(sys.argv) > 1:
        host = sys.argv[0]
    else:
        host = "www.dnspython.org"
    q = dns.message.make_query(host, "A")
    r = await dns.asyncquery.udp(q, "8.8.8.8")
    print(r)
    q = dns.message.make_query(host, "A")
    r = await dns.asyncquery.tcp(q, "8.8.8.8")
    print(r)
    q = dns.message.make_query(host, "A")
    r = await dns.asyncquery.tls(q, "8.8.8.8")
    print(r)
    a = await dns.asyncresolver.resolve(host, "A")
    print(a.response)
    zn = await dns.asyncresolver.zone_for_name(host)
    print(zn)
    answer = await dns.asyncresolver.resolve_at("8.8.8.8", "amazon.com", "NS")
    print("The amazon.com nameservers are:")
    for rr in answer:
        print(rr.target)


if __name__ == "__main__":
    trio.run(main)