File: query-gdns.py

package info (click to toggle)
python-getdns 1.0.0~b1-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 448 kB
  • sloc: ansic: 3,538; python: 607; makefile: 130
file content (35 lines) | stat: -rwxr-xr-x 991 bytes parent folder | download | duplicates (4)
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
#!/usr/bin/env python
# 
# Use stub mode with google public DNS as recursive resolvers
# to query addresses associated with a host.
#

import getdns, sys, pprint

google_public_dns = [
    {'address_data': '8.8.8.8', 'address_type': 'IPv4'},
    {'address_data': '8.8.4.4', 'address_type': 'IPv4'},
    {'address_data': '2001:4860:4860::8888', 'address_type': 'IPv6'},
    {'address_data': '2001:4860:4860::8844', 'address_type': 'IPv6'},
]

hostname = sys.argv[1]

ctx = getdns.Context()
ctx.resolution_type = getdns.RESOLUTION_STUB
ctx.upstream_recursive_servers = google_public_dns

extensions = { "return_both_v4_and_v6" : getdns.EXTENSION_TRUE }

try:
    results = ctx.address(name=hostname, extensions=extensions)
except getdns.error as e:
    print(str(e))
    sys.exit(1)

if results.status == getdns.RESPSTATUS_GOOD:
    for addr in results.just_address_answers:
        print(addr["address_data"])
else:
    print("getdns.address() returned an error: %d".format(results.status))