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))
|