Linux evo.fastest-server.com 5.14.0-284.1101.el9.tuxcare.11.els11.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Aug 14 13:30:35 UTC 2026 x86_64
LiteSpeed
Server IP : 103.249.112.113 & Your IP : 216.73.217.135
Domains : 988 Domain
User : tanishks
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
share /
doc /
python3-dns /
examples /
Delete
Unzip
Name
Size
Permission
Date
Action
async_dns.py
874
B
-rw-r--r--
2024-02-18 18:35
ddns.py
1.17
KB
-rw-r--r--
2024-02-18 18:35
ddr.py
950
B
-rw-r--r--
2024-02-18 18:35
doh-json.py
2.93
KB
-rw-r--r--
2024-02-18 18:35
doh.py
534
B
-rw-r--r--
2024-02-18 18:35
doq.py
3.07
KB
-rw-r--r--
2024-02-18 18:35
e164.py
115
B
-rw-r--r--
2024-02-18 18:35
ecs.py
450
B
-rw-r--r--
2024-02-18 18:35
edns.py
1.7
KB
-rw-r--r--
2024-02-18 18:35
edns_resolver.py
1.5
KB
-rw-r--r--
2024-02-18 18:35
mx.py
189
B
-rw-r--r--
2024-02-18 18:35
name.py
356
B
-rw-r--r--
2024-02-18 18:35
query_specific.py
1.62
KB
-rw-r--r--
2024-02-18 18:35
receive_notify.py
1022
B
-rw-r--r--
2024-02-18 18:35
reverse.py
1.36
KB
-rw-r--r--
2024-02-18 18:35
reverse_name.py
140
B
-rw-r--r--
2024-02-18 18:35
send_notify.py
2.4
KB
-rw-r--r--
2024-02-18 18:35
wire_read_tcp.py
1.62
KB
-rw-r--r--
2024-02-18 18:35
xfr.py
340
B
-rw-r--r--
2024-02-18 18:35
zonediff.py
11.89
KB
-rw-r--r--
2024-02-18 18:35
Save
Rename
#!/usr/bin/env python3 import copy import json import httpx import dns.flags import dns.message import dns.resolver import dns.rdataclass import dns.rdatatype # This shows how to convert to/from dnspython's message object and the # DNS-over-HTTPS (DoH) JSON form used by Google and Cloudflare, and # described here: # # https://developers.google.com/speed/public-dns/docs/doh/json # # There's no need to do this for DoH as dnspython supports the # standard RFC 8484 protocol which all DoH providers implement. The # conversion to/from JSON is useful, however, so we show a way to do # it. # # "simple" below means "simple python data types", i.e. things made of # combinations of dictionaries, lists, strings, and numbers. def make_rr(simple, rdata): csimple = copy.copy(simple) csimple["data"] = rdata.to_text() return csimple def flatten_rrset(rrs): simple = { "name": str(rrs.name), "type": rrs.rdtype, } if len(rrs) > 0: simple["TTL"] = rrs.ttl return [make_rr(simple, rdata) for rdata in rrs] else: return [simple] def to_doh_simple(message): simple = {"Status": message.rcode()} for f in dns.flags.Flag: if f != dns.flags.Flag.AA and f != dns.flags.Flag.QR: # DoH JSON doesn't need AA and omits it. DoH JSON is only # used in replies so the QR flag is implied. simple[f.name] = (message.flags & f) != 0 for i, s in enumerate(message.sections): k = dns.message.MessageSection.to_text(i).title() simple[k] = [] for rrs in s: simple[k].extend(flatten_rrset(rrs)) # we don't encode the ecs_client_subnet field return simple def from_doh_simple(simple, add_qr=False): message = dns.message.QueryMessage() flags = 0 for f in dns.flags.Flag: if simple.get(f.name, False): flags |= f if add_qr: # QR is implied flags |= dns.flags.QR message.flags = flags message.set_rcode(simple.get("Status", 0)) for i, sn in enumerate(dns.message.MessageSection): rr_list = simple.get(sn.name.title(), []) for rr in rr_list: rdtype = dns.rdatatype.RdataType(rr["type"]) rrs = message.find_rrset( i, dns.name.from_text(rr["name"]), dns.rdataclass.IN, rdtype, create=True, ) if "data" in rr: rrs.add( dns.rdata.from_text(dns.rdataclass.IN, rdtype, rr["data"]), rr.get("TTL", 0), ) # we don't decode the ecs_client_subnet field return message a = dns.resolver.resolve("www.dnspython.org", "a") p = to_doh_simple(a.response) print(json.dumps(p, indent=4)) response = httpx.get( "https://dns.google/resolve?", verify=True, params={"name": "www.dnspython.org", "type": 1}, ) p = json.loads(response.text) m = from_doh_simple(p, True) print(m)