#!/usr/bin/env python3 # Author: @awsumco """DNS OF HTTPS - DIG Usage: doh-dig type doh-dig ptr doh-dig (-h | --help) doh-dig --version Options: -h --help Show this screen. --version Show version. """ from docopt import docopt from pprint import pprint as pp from sys import exit import ipaddress, json def CloudFlareLookup(type,record): import requests headers = {'accept': 'application/dns-json'} url = "https://1.1.1.1/dns-query?name=%s&type=%s" % (record,type) r = requests.get(url, headers=headers) j_data = json.loads(r.text) try: return(j_data['Answer']) except: return(j_data['Question']) valid_types = ['A','MX','PTR','SRV','TXT','NS'] if __name__ == '__main__': arguments = docopt(__doc__, version='doh-dig 0.1') if arguments['type']: t = arguments[''].upper() r = arguments[''].lower() if t not in valid_types: exit('invalid type') x = CloudFlareLookup(t,r) print(json.dumps(x)) elif arguments['ptr']: ip = arguments[''] arpa = ipaddress.ip_address(ip).reverse_pointer x = CloudFlareLookup('PTR',arpa) print(json.dumps(x)) else: print(arguments)