diff -Nru python-dnslib-0.9.7+hg20170303/debian/changelog python-dnslib-0.9.10/debian/changelog --- python-dnslib-0.9.7+hg20170303/debian/changelog 2019-07-25 12:51:55.000000000 +0000 +++ python-dnslib-0.9.10/debian/changelog 2019-08-02 02:14:18.000000000 +0000 @@ -1,3 +1,10 @@ +python-dnslib (0.9.10-1) unstable; urgency=medium + + * New upstream release + * Add autopkgtest + + -- Scott Kitterman Thu, 01 Aug 2019 22:14:18 -0400 + python-dnslib (0.9.7+hg20170303-2) unstable; urgency=medium * Team upload. diff -Nru python-dnslib-0.9.7+hg20170303/debian/tests/control python-dnslib-0.9.10/debian/tests/control --- python-dnslib-0.9.7+hg20170303/debian/tests/control 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/debian/tests/control 2019-08-02 02:04:15.000000000 +0000 @@ -0,0 +1,3 @@ +Tests: py3 +Depends: @, python3 +Restrictions: allow-stderr diff -Nru python-dnslib-0.9.7+hg20170303/debian/tests/py3 python-dnslib-0.9.10/debian/tests/py3 --- python-dnslib-0.9.7+hg20170303/debian/tests/py3 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/debian/tests/py3 2019-08-02 02:13:01.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/sh + +export PYTHONPATH=$(pwd) + +: ${VERSIONS:="python3"} + +for src in __init__.py bimap.py bit.py buffer.py label.py dns.py lex.py server.py digparser.py ranges.py test_decode.py +do + echo "===" $src + for py in $VERSIONS + do + echo "Testing:" $($py --version 2>&1) + $py dnslib/$src + done +done + +for py in $VERSIONS +do + echo "Fuzz:" $($py --version 2>&1) + $py fuzz.py +done diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/bimap.py python-dnslib-0.9.10/dnslib/bimap.py --- python-dnslib-0.9.7+hg20170303/dnslib/bimap.py 2017-03-01 17:38:14.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/bimap.py 2019-03-24 11:00:54.000000000 +0000 @@ -49,7 +49,7 @@ """ - def __init__(self,name,forward,error=KeyError): + def __init__(self,name,forward,error=AttributeError): self.name = name self.error = error self.forward = forward.copy() @@ -69,6 +69,9 @@ def __getattr__(self,k): try: + # Python 3.7 inspect module (called by doctest) checks for __wrapped__ attribute + if k == "__wrapped__": + raise AttributeError() return self.reverse[k] except KeyError as e: raise self.error("%s: Invalid reverse lookup: [%s]" % (self.name,k)) diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/client.py python-dnslib-0.9.10/dnslib/client.py --- python-dnslib-0.9.7+hg20170303/dnslib/client.py 2017-03-01 17:38:14.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/client.py 2019-03-24 11:12:14.000000000 +0000 @@ -18,9 +18,9 @@ except ImportError: from commands import getoutput -import binascii,code,pprint +import binascii,code,pprint,sys -from dnslib.dns import DNSRecord,DNSHeader,DNSQuestion,QTYPE +from dnslib.dns import DNSRecord,DNSHeader,DNSQuestion,DNSError,QTYPE,EDNS0 from dnslib.digparser import DigParser if __name__ == '__main__': @@ -45,6 +45,8 @@ help="Compare result with DiG - if ---diff also specified use alternative nameserver for DiG request (default: false)") p.add_argument("--short",action='store_true',default=False, help="Short output - rdata only (default: false)") + p.add_argument("--dnssec",action='store_true',default=False, + help="Set DNSSEC (DO/AD) flags in query (default: false)") p.add_argument("--debug",action='store_true',default=False, help="Drop into CLI after request (default: false)") p.add_argument("domain",metavar="", @@ -54,76 +56,88 @@ args = p.parse_args() # Construct request - q = DNSRecord(q=DNSQuestion(args.domain,getattr(QTYPE,args.qtype))) + try: + q = DNSRecord(q=DNSQuestion(args.domain,getattr(QTYPE,args.qtype))) - address,_,port = args.server.partition(':') - port = int(port or 53) + if args.dnssec: + q.add_ar(EDNS0(flags="do",udp_len=4096)) + q.header.ad = 1 + + address,_,port = args.server.partition(':') + port = int(port or 53) + + if args.query: + print(";; Sending%s:" % (" (TCP)" if args.tcp else "")) + if args.hex: + print(";; QUERY:",binascii.hexlify(q.pack()).decode()) + print(q) + print() - if args.query: - print(";; Sending%s:" % (" (TCP)" if args.tcp else "")) - if args.hex: - print(";; QUERY:",binascii.hexlify(q.pack()).decode()) - print(q) - print() - - a_pkt = q.send(address,port,tcp=args.tcp) - a = DNSRecord.parse(a_pkt) - - if a.header.tc and args.noretry == False: - # Truncated - retry in TCP mode - a_pkt = q.send(address,port,tcp=True) + a_pkt = q.send(address,port,tcp=args.tcp) a = DNSRecord.parse(a_pkt) - if args.dig or args.diff: - if args.diff: - address,_,port = args.diff.partition(':') - port = int(port or 53) - - if args.dig: - dig = getoutput("dig +qr -p %d %s %s @%s" % ( - port, args.domain, args.qtype, address)) - dig_reply = list(iter(DigParser(dig))) - # DiG might have retried in TCP mode so get last q/a - q_diff = dig_reply[-2] - a_diff = dig_reply[-1] - else: - q_diff = DNSRecord(header=DNSHeader(id=q.header.id), - q=DNSQuestion(args.domain, - getattr(QTYPE,args.qtype))) - q_diff = q - diff = q_diff.send(address,port,tcp=args.tcp) - a_diff = DNSRecord.parse(diff) - if a_diff.header.tc and args.noretry == False: - diff = q_diff.send(address,port,tcp=True) + if a.header.tc and args.noretry == False: + # Truncated - retry in TCP mode + a_pkt = q.send(address,port,tcp=True) + a = DNSRecord.parse(a_pkt) + + if args.dig or args.diff: + if args.diff: + address,_,port = args.diff.partition(':') + port = int(port or 53) + + if args.dig: + if args.dnssec: + dig = getoutput("dig +qr +dnssec -p %d %s %s @%s" % ( + port, args.domain, args.qtype, address)) + else: + dig = getoutput("dig +qr +noedns +noadflag -p %d %s %s @%s" % ( + port, args.domain, args.qtype, address)) + dig_reply = list(iter(DigParser(dig))) + # DiG might have retried in TCP mode so get last q/a + q_diff = dig_reply[-2] + a_diff = dig_reply[-1] + else: + q_diff = DNSRecord(header=DNSHeader(id=q.header.id), + q=DNSQuestion(args.domain, + getattr(QTYPE,args.qtype))) + q_diff = q + diff = q_diff.send(address,port,tcp=args.tcp) a_diff = DNSRecord.parse(diff) + if a_diff.header.tc and args.noretry == False: + diff = q_diff.send(address,port,tcp=True) + a_diff = DNSRecord.parse(diff) - if args.short: - print(a.short()) - else: - print(";; Got answer:") - if args.hex: - print(";; RESPONSE:",binascii.hexlify(a_pkt).decode()) - if args.diff and not args.dig: - print(";; DIFF :",binascii.hexlify(diff).decode()) - print(a) - print() + if args.short: + print(a.short()) + else: + print(";; Got answer:") + if args.hex: + print(";; RESPONSE:",binascii.hexlify(a_pkt).decode()) + if args.diff and not args.dig: + print(";; DIFF :",binascii.hexlify(diff).decode()) + print(a) + print() + + if args.dig or args.diff: + if q != q_diff: + print(";;; ERROR: Diff Question differs") + for (d1,d2) in q.diff(q_diff): + if d1: + print(";; - %s" % d1) + if d2: + print(";; + %s" % d2) + if a != a_diff: + print(";;; ERROR: Diff Response differs") + for (d1,d2) in a.diff(a_diff): + if d1: + print(";; - %s" % d1) + if d2: + print(";; + %s" % d2) - if args.dig or args.diff: - if q != q_diff: - print(";;; ERROR: Diff Question differs") - for (d1,d2) in q.diff(q_diff): - if d1: - print(";; - %s" % d1) - if d2: - print(";; + %s" % d2) - if a != a_diff: - print(";;; ERROR: Diff Response differs") - for (d1,d2) in a.diff(a_diff): - if d1: - print(";; - %s" % d1) - if d2: - print(";; + %s" % d2) + if args.debug: + code.interact(local=locals()) - if args.debug: - code.interact(local=locals()) + except DNSError as e: + p.error(e) diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/digparser.py python-dnslib-0.9.10/dnslib/digparser.py --- python-dnslib-0.9.7+hg20170303/dnslib/digparser.py 2017-03-01 17:38:14.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/digparser.py 2019-03-23 14:01:45.000000000 +0000 @@ -71,11 +71,11 @@ from __future__ import print_function -import glob,os.path,string +import glob,os.path,string,re from dnslib.lex import WordLexer from dnslib.dns import (DNSRecord,DNSHeader,DNSQuestion,DNSError, - RR,RD,RDMAP,QR,RCODE,CLASS,QTYPE) + RR,RD,RDMAP,QR,RCODE,CLASS,QTYPE,EDNS0) class DigParser: @@ -96,7 +96,7 @@ header = DNSHeader(id=int(_id),bitmap=0) header.opcode = getattr(QR,opcode.rstrip(',')) header.rcode = getattr(RCODE,status.rstrip(',')) - for f in ('qr','aa','tc','rd','ra'): + for f in ('qr','aa','tc','rd','ra','ad','cd'): if f in flags: setattr(header,f,1) return header @@ -139,6 +139,19 @@ # Skip records we dont understand pass + def parseEDNS(self,edns,dns): + args = {} + m = re.search('version: (\d+),',edns) + if m: + args['version'] = int(m.group(1)) + m = re.search('flags:\s*(.*?);',edns) + if m: + args['flags'] = m.group(1) + m = re.search('udp: (\d+)',edns) + if m: + args['udp_len'] = int(m.group(1)) + dns.add_ar(EDNS0(**args)) + def __iter__(self): return self.parse() @@ -170,6 +183,11 @@ section = auth elif val.startswith('; ADDITIONAL'): section = ar + elif val.startswith('; OPT'): + # Only partial support for parsing EDNS records + self.expect('NL') + val2 = self.expect('COMMENT') + self.parseEDNS(val2,dns) elif val.startswith(';') or tok[1].startswith('<<>>'): pass elif dns and section == q: diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/dns.py python-dnslib-0.9.10/dnslib/dns.py --- python-dnslib-0.9.7+hg20170303/dnslib/dns.py 2017-03-01 17:38:14.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/dns.py 2019-03-24 00:51:01.000000000 +0000 @@ -31,15 +31,17 @@ # DNS codes QTYPE = Bimap('QTYPE', - {1:'A', 2:'NS', 5:'CNAME', 6:'SOA', 12:'PTR', 15:'MX', - 16:'TXT', 17:'RP', 18:'AFSDB', 24:'SIG', 25:'KEY', 28:'AAAA', - 29:'LOC', 33:'SRV', 35:'NAPTR', 36:'KX', 37:'CERT', 38:'A6', - 39:'DNAME', 41:'OPT', 42:'APL', 43:'DS', 44:'SSHFP', - 45:'IPSECKEY', 46:'RRSIG', 47:'NSEC', 48:'DNSKEY', 49:'DHCID', - 50:'NSEC3', 51:'NSEC3PARAM', 52:'TLSA', 55:'HIP', 99:'SPF', - 249:'TKEY', 250:'TSIG', 251:'IXFR', 252:'AXFR', 255:'ANY', - 257:'CAA', 32768:'TA', 32769:'DLV'}, - DNSError) + {1:'A', 2:'NS', 5:'CNAME', 6:'SOA', 12:'PTR', 13:'HINFO', + 15:'MX', 16:'TXT', 17:'RP', 18:'AFSDB', 24:'SIG', 25:'KEY', + 28:'AAAA', 29:'LOC', 33:'SRV', 35:'NAPTR', 36:'KX', + 37:'CERT', 38:'A6', 39:'DNAME', 41:'OPT', 42:'APL', + 43:'DS', 44:'SSHFP', 45:'IPSECKEY', 46:'RRSIG', 47:'NSEC', + 48:'DNSKEY', 49:'DHCID', 50:'NSEC3', 51:'NSEC3PARAM', + 52:'TLSA', 55:'HIP', 59:'CDS', 60:'CDNSKEY', + 61:'OPENPGPKEY',99:'SPF', 249:'TKEY', 250:'TSIG', + 251:'IXFR', 252:'AXFR', 255:'ANY', 256:'URI', 257:'CAA', + 32768:'TA', 32769:'DLV'}, DNSError) + CLASS = Bimap('CLASS', {1:'IN', 2:'CS', 3:'CH', 4:'Hesiod', 254:'None', 255:'*'}, DNSError) @@ -512,6 +514,12 @@ self.rd = v elif k.lower() == "ra": self.ra = v + elif k.lower() == "z": + self.z = v + elif k.lower() == "ad": + self.ad = v + elif k.lower() == "cd": + self.cd = v elif k.lower() == "rcode": self.rcode = v @@ -565,6 +573,30 @@ ra = property(get_ra,set_ra) + def get_z(self): + return get_bits(self.bitmap,6) + + def set_z(self,val): + self.bitmap = set_bits(self.bitmap,val,6) + + z = property(get_z,set_z) + + def get_ad(self): + return get_bits(self.bitmap,5) + + def set_ad(self,val): + self.bitmap = set_bits(self.bitmap,val,5) + + ad = property(get_ad,set_ad) + + def get_cd(self): + return get_bits(self.bitmap,4) + + def set_cd(self,val): + self.bitmap = set_bits(self.bitmap,val,4) + + cd = property(get_cd,set_cd) + def get_rcode(self): return get_bits(self.bitmap,0,4) @@ -581,7 +613,10 @@ f = [ self.aa and 'AA', self.tc and 'TC', self.rd and 'RD', - self.ra and 'RA' ] + self.ra and 'RA', + self.z and 'Z', + self.ad and 'AD', + self.cd and 'CD'] if OPCODE.get(self.opcode) == 'UPDATE': f1='zo' f2='pr' @@ -606,7 +641,10 @@ self.aa and 'aa', self.tc and 'tc', self.rd and 'rd', - self.ra and 'ra' ] + self.ra and 'ra', + self.z and 'z', + self.ad and 'ad', + self.cd and 'cd' ] z1 = ';; ->>HEADER<<- opcode: %s, status: %s, id: %d' % ( OPCODE.get(self.opcode),RCODE.get(self.rcode),self.id) z2 = ';; flags: %s; QUERY: %d, ANSWER: %d, AUTHORITY: %d, ADDITIONAL: %d' % ( @@ -625,7 +663,7 @@ return False else: # Ignore id - attrs = ('qr','aa','tc','rd','ra','opcode','rcode') + attrs = ('qr','aa','tc','rd','ra','z','ad','cd','opcode','rcode') return all([getattr(self,x) == getattr(other,x) for x in attrs]) class DNSQuestion(object): @@ -724,7 +762,7 @@ self.code,binascii.hexlify(self.data).decode()) def toZone(self): - return ";EDNS: code: %s; data: %s" % ( + return "; EDNS: code: %s; data: %s" % ( self.code,binascii.hexlify(self.data).decode()) def __str__(self): @@ -790,10 +828,9 @@ self.rclass = rclass self.ttl = ttl self.rdata = rdata - # TODO Add property getters/setters + # TODO Add property getters/setters (done for DO flag) if self.rtype == QTYPE.OPT: self.edns_len = self.rclass - self.edns_do = get_bits(self.ttl,15) self.edns_ver = get_bits(self.ttl,16,8) self.edns_rcode = get_bits(self.ttl,24,8) @@ -808,6 +845,17 @@ rname = property(get_rname,set_rname) + def get_do(self): + if self.rtype == QTYPE.OPT: + return get_bits(self.ttl,15) + return 0 + + def set_do(self,val): + if self.rtype == QTYPE.OPT: + self.ttl = set_bits(self.ttl,val,15) + + edns_do = property(get_do,set_do) + def pack(self,buffer): buffer.encode_name(self.rname) buffer.pack("!HHI",self.rtype,self.rclass,self.ttl) @@ -835,8 +883,8 @@ def toZone(self): if self.rtype == QTYPE.OPT: - edns = [ ";OPT PSEUDOSECTION", - ";EDNS: version: %d, flags: %s; udp: %d" % ( + edns = [ ";; OPT PSEUDOSECTION", + "; EDNS: version: %d, flags: %s; udp: %d" % ( self.edns_ver, "do" if self.edns_do else "", self.edns_len) @@ -884,16 +932,16 @@ >>> EDNS0("abc.com",flags="do",udp_len=2048,version=1) >>> print(_) - ;OPT PSEUDOSECTION - ;EDNS: version: 1, flags: do; udp: 2048 + ;; OPT PSEUDOSECTION + ; EDNS: version: 1, flags: do; udp: 2048 >>> opt = EDNS0("abc.com",flags="do",ext_rcode=1,udp_len=2048,version=1,opts=[EDNSOption(1,b'abcd')]) >>> opt >>> print(opt) - ;OPT PSEUDOSECTION - ;EDNS: version: 1, flags: do; udp: 2048 - ;EDNS: code: 1; data: 61626364 + ;; OPT PSEUDOSECTION + ; EDNS: version: 1, flags: do; udp: 2048 + ; EDNS: code: 1; data: 61626364 >>> r = DNSRecord.question("abc.com").replyZone("abc.com A 1.2.3.4") >>> r.add_ar(opt) >>> print(r) @@ -904,9 +952,9 @@ ;; ANSWER SECTION: abc.com. 0 IN A 1.2.3.4 ;; ADDITIONAL SECTION: - ;OPT PSEUDOSECTION - ;EDNS: version: 1, flags: do; udp: 2048 - ;EDNS: code: 1; data: 61626364 + ;; OPT PSEUDOSECTION + ; EDNS: version: 1, flags: do; udp: 2048 + ; EDNS: code: 1; data: 61626364 >>> DNSRecord.parse(r.pack()) == r True """ @@ -1470,7 +1518,7 @@ self.flags = flags self.protocol = protocol self.algorithm = algorithm - self.key = key + self.key = _force_bytes(key) def pack(self,buffer): buffer.pack("!HBB",self.flags,self.protocol,self.algorithm) @@ -1549,6 +1597,89 @@ attrs = ('covered','algorithm','labels','orig_ttl','sig_exp','sig_inc', 'key_tag','name','sig') +def decode_type_bitmap(type_bitmap): + """ + Parse RR type bitmap in NSEC record + + >>> decode_type_bitmap(binascii.unhexlify(b'0006400080080003')) + ['A', 'TXT', 'AAAA', 'RRSIG', 'NSEC'] + >>> decode_type_bitmap(binascii.unhexlify(b'000762008008000380')) + ['A', 'NS', 'SOA', 'TXT', 'AAAA', 'RRSIG', 'NSEC', 'DNSKEY'] + """ + rrlist = [] + buf = DNSBuffer(type_bitmap) + while buf.remaining(): + winnum,winlen = buf.unpack('BB') + bitmap = bytearray(buf.get(winlen)) + for (pos,value) in enumerate(bitmap): + for i in range(8): + if (value << i) & 0x80: + bitpos = (256*winnum) + (8*pos) + i + rrlist.append(QTYPE[bitpos]) + return rrlist + +def encode_type_bitmap(rrlist): + """ + Encode RR type bitmap in NSEC record + XXX Currenly support window #0 (RR 1-255) + + >>> p = lambda x: print(binascii.hexlify(x).decode()) + >>> p(encode_type_bitmap(['A','TXT','AAAA','RRSIG','NSEC'])) + 0006400080080003 + >>> p(encode_type_bitmap(['A','NS','SOA','TXT','AAAA','RRSIG','NSEC','DNSKEY'])) + 000762008008000380 + """ + bitmap = bytearray([0]*32) + for rr in rrlist: + v = getattr(QTYPE,rr) + if v > 255: + raise ValueError("Only support window #0 (RR 1-255) [%s]" % rr) + bitmap[v//8] |= 1 << (7 - v%8) + while bitmap[-1] == 0: + bitmap = bitmap[:-1] + return struct.pack("BB",0,len(bitmap)) + bitmap + +class NSEC(RD): + + @classmethod + def parse(cls,buffer,length): + try: + end = buffer.offset + length + name = buffer.decode_name() + rrlist = decode_type_bitmap(buffer.get(end - buffer.offset)) + return cls(name,rrlist) + except (BufferError,BimapError) as e: + raise DNSError("Error unpacking NSEC [offset=%d]: %s" % + (buffer.offset,e)) + + @classmethod + def fromZone(cls,rd,origin=None): + return cls(rd.pop(0),rd) + + def __init__(self,label,rrlist): + self.label = label + self.rrlist = rrlist + + def set_label(self,label): + if isinstance(label,DNSLabel): + self._label = label + else: + self._label = DNSLabel(label) + + def get_label(self): + return self._label + + label = property(get_label,set_label) + + def pack(self,buffer): + buffer.encode_name_nocompress(self.label) + buffer.append(encode_type_bitmap(self.rrlist)) + + def __repr__(self): + return "%s %s" % (self.label," ".join(self.rrlist)) + + attrs = ('label','rrlist') + class CAA(RD): """ CAA record. @@ -1617,7 +1748,7 @@ RDMAP = { 'CNAME':CNAME, 'A':A, 'AAAA':AAAA, 'TXT':TXT, 'MX':MX, 'PTR':PTR, 'SOA':SOA, 'NS':NS, 'NAPTR': NAPTR, 'SRV':SRV, - 'DNSKEY':DNSKEY, 'RRSIG':RRSIG, 'CAA':CAA + 'DNSKEY':DNSKEY, 'RRSIG':RRSIG, 'NSEC':NSEC, 'CAA':CAA } ## diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/__init__.py python-dnslib-0.9.10/dnslib/__init__.py --- python-dnslib-0.9.7+hg20170303/dnslib/__init__.py 2017-03-01 17:38:14.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/__init__.py 2019-03-24 01:08:14.000000000 +0000 @@ -163,7 +163,7 @@ >>> RR.fromZone("abc.com IN A 1.2.3.4") [] -(Note: this produces a list of RRs which should be unpacked if being + (Note: this produces a list of RRs which should be unpacked if being passed to add_answer/add_auth/add_ar etc) >>> q = DNSRecord.question("abc.com") @@ -256,6 +256,19 @@ www.abc.com. 300 IN TXT "Some Text" mail.abc.com. 300 IN CNAME www.abc.com. +To send a DNSSEC request (EDNS OPT record with DO flag & header AD flag): + + >>> q = DNSRecord(q=DNSQuestion("abc.com",QTYPE.A)) + >>> q.add_ar(EDNS0(flags="do",udp_len=4096)) + >>> q.header.ad = 1 + >>> print(q) + ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: ... + ;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 + ;; QUESTION SECTION: + ;abc.com. IN A + ;; ADDITIONAL SECTION: + ;; OPT PSEUDOSECTION + ; EDNS: version: 0, flags: do; udp: 4096 The library also includes a simple framework for generating custom DNS resolvers in dnslib.server (see module docs). In post cases this just @@ -317,7 +330,17 @@ * 0.9.6 2015-10-28 Replace strftime in RRSIG formatting to avoid possible locale issues Identified by Bryan Everly - thanks * 0.9.7 2017-01-15 Sort out CAA/TYPE257 DiG parsing mismatch - + * 0.9.8 2019-02-25 Force DNSKEY key to be bytes object + Catch Bimap __wrapped__ attr (used by inspect module in 3.7) + * 0.9.9 2019-03-19 Add support for DNSSEC flag getters/setters (from - thanks) + Added --dnssec flags to dnslib.client & dnslib.test_decode (sets EDNS0 DO flag) + Added EDNS0 support to dnslib.digparser + * 0.9.10 2019-03-24 Fixes to DNSSEC support + Add NSEC RR support + Add --dnssec flag to dnslib.client & dnslib.test_decode + Quote/unquote non-printable characters in DNS labels + Update test data + (Thanks to for help) License: -------- @@ -339,7 +362,7 @@ from dnslib.dns import * -version = "0.9.7" +version = "0.9.10" if __name__ == '__main__': import doctest,textwrap diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/label.py python-dnslib-0.9.10/dnslib/label.py --- python-dnslib-0.9.7+hg20170303/dnslib/label.py 2017-03-01 17:38:14.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/label.py 2019-03-24 01:42:14.000000000 +0000 @@ -6,11 +6,17 @@ from __future__ import print_function -import fnmatch +import fnmatch,re,string from dnslib.bit import get_bits,set_bits from dnslib.buffer import Buffer, BufferError +# In theory valid label characters should be letters,digits,hyphen,underscore (LDH) +# LDH = set(bytearray(b'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_')) +# For compatibility we only escape non-printable characters +LDH = set(range(33,127)) +ESCAPE = re.compile(r'\\([0-9][0-9][0-9])') + class DNSLabelError(Exception): pass @@ -77,9 +83,15 @@ if not label or label in (b'.','.'): self.label = () elif type(label) is not bytes: + if type('') != type(b''): + # Py3 + label = ESCAPE.sub(lambda m:chr(int(m[1])),label) self.label = tuple(label.encode("idna").\ rstrip(b".").split(b".")) else: + if type('') == type(b''): + # Py2 + label = ESCAPE.sub(lambda m:chr(int(m.groups()[0])),label) self.label = tuple(label.rstrip(b".").split(b".")) def add(self,name): @@ -116,8 +128,16 @@ def idna(self): return ".".join([ s.decode("idna") for s in self.label ]) + "." + def _decode(self,s): + if set(s).issubset(LDH): + # All chars in LDH + return s.decode() + else: + # Need to encode + return "".join([(chr(c) if (c in LDH) else "\%03d" % c) for c in s]) + def __str__(self): - return ".".join([ s.decode() for s in self.label ]) + "." + return ".".join([ self._decode(bytearray(s)) for s in self.label ]) + "." def __repr__(self): return "" % str(self) diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/1.1.1.1.in-addr.arpa.-PTR python-dnslib-0.9.10/dnslib/test/1.1.1.1.in-addr.arpa.-PTR --- python-dnslib-0.9.7+hg20170303/dnslib/test/1.1.1.1.in-addr.arpa.-PTR 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/1.1.1.1.in-addr.arpa.-PTR 2019-03-24 00:38:21.000000000 +0000 @@ -0,0 +1,16 @@ +;; Sending: +;; QUERY: 66e301000001000000000000013101310131013107696e2d61646472046172706100000c0001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26339 +;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;1.1.1.1.in-addr.arpa. IN PTR + +;; Got answer: +;; RESPONSE: 66e381800001000100000000013101310131013107696e2d61646472046172706100000c0001c00c000c0001000003580011036f6e65036f6e65036f6e65036f6e6500 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26339 +;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;1.1.1.1.in-addr.arpa. IN PTR +;; ANSWER SECTION: +1.1.1.1.in-addr.arpa. 856 IN PTR one.one.one.one. + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/20120113._domainkey.gmail.com.-TXT python-dnslib-0.9.10/dnslib/test/20120113._domainkey.gmail.com.-TXT --- python-dnslib-0.9.7+hg20170303/dnslib/test/20120113._domainkey.gmail.com.-TXT 2017-03-01 17:38:14.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/20120113._domainkey.gmail.com.-TXT 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -;; Sending: -;; QUERY: 40ca010000010000000000000832303132303131330a5f646f6d61696e6b657905676d61696c03636f6d0000100001 -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16586 -;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 -;; QUESTION SECTION: -;20120113._domainkey.gmail.com. IN TXT - -;; Got answer: -;; RESPONSE: 40ca818000010001000000000832303132303131330a5f646f6d61696e6b657905676d61696c03636f6d0000100001c00c00100001000001090193b36b3d7273613b20703d4d494942496a414e42676b71686b6947397730424151454641414f43415138414d49494243674b4341514541314b6438372f55654a6a656e70616267624677682b65424373535472716d774959597679776c626862716f6f3244796d6e64466b626a4f564950496c644e732f6d34304b462b797a4d6e31736b796f7863545547435173386733466744324170335a423544656b416f35774d6d6b3477696d444f2b5538517a4933534430de3779322b3037776c4e577749743873766e78676478476b566262687a5938692b525139447053567050624637796b5178744b586b762f616857334b6a56696941482b6768767649686b78347859534963396f5377566d416c354f63744d456557557767384973746a717a38425a6554576266343166624e68746537592b59715a4f777131536430446276594144394e4f5a4b39766c667561633035393848592b76745342637a55694b4552487631795262636151745a46683577746952724e3034424c55544432314d79634258356a596368486a50592f77494441514142 -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16586 -;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 -;; QUESTION SECTION: -;20120113._domainkey.gmail.com. IN TXT -;; ANSWER SECTION: -20120113._domainkey.gmail.com. 265 IN TXT "k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1Kd87/UeJjenpabgbFwh+eBCsSTrqmwIYYvywlbhbqoo2DymndFkbjOVIPIldNs/m40KF+yzMn1skyoxcTUGCQs8g3FgD2Ap3ZB5DekAo5wMmk4wimDO+U8QzI3SD0" "7y2+07wlNWwIt8svnxgdxGkVbbhzY8i+RQ9DpSVpPbF7ykQxtKXkv/ahW3KjViiAH+ghvvIhkx4xYSIc9oSwVmAl5OctMEeWUwg8Istjqz8BZeTWbf41fbNhte7Y+YqZOwq1Sd0DbvYAD9NOZK9vlfuac0598HY+vtSBczUiKERHv1yRbcaQtZFh5wtiRrN04BLUTD21MycBX5jYchHjPY/wIDAQAB" - diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/8.8.8.8.in-addr.arpa.-PTR python-dnslib-0.9.10/dnslib/test/8.8.8.8.in-addr.arpa.-PTR --- python-dnslib-0.9.7+hg20170303/dnslib/test/8.8.8.8.in-addr.arpa.-PTR 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/8.8.8.8.in-addr.arpa.-PTR 2019-03-24 00:38:12.000000000 +0000 @@ -0,0 +1,16 @@ +;; Sending: +;; QUERY: 00fb01000001000000000000013801380138013807696e2d61646472046172706100000c0001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 251 +;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;8.8.8.8.in-addr.arpa. IN PTR + +;; Got answer: +;; RESPONSE: 00fb81800001000100000000013801380138013807696e2d61646472046172706100000c0001c00c000c000100001ac9002013676f6f676c652d7075626c69632d646e732d6106676f6f676c6503636f6d00 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 251 +;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;8.8.8.8.in-addr.arpa. IN PTR +;; ANSWER SECTION: +8.8.8.8.in-addr.arpa. 6857 IN PTR google-public-dns-a.google.com. + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/9.9.9.9.in-addr.arpa.-PTR python-dnslib-0.9.10/dnslib/test/9.9.9.9.in-addr.arpa.-PTR --- python-dnslib-0.9.7+hg20170303/dnslib/test/9.9.9.9.in-addr.arpa.-PTR 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/9.9.9.9.in-addr.arpa.-PTR 2019-03-24 00:39:07.000000000 +0000 @@ -0,0 +1,16 @@ +;; Sending: +;; QUERY: 682e01000001000000000000013901390139013907696e2d61646472046172706100000c0001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26670 +;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;9.9.9.9.in-addr.arpa. IN PTR + +;; Got answer: +;; RESPONSE: 682e81800001000100000000013901390139013907696e2d61646472046172706100000c0001c00c000c000100000dc0000f03646e73057175616439036e657400 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26670 +;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;9.9.9.9.in-addr.arpa. IN PTR +;; ANSWER SECTION: +9.9.9.9.in-addr.arpa. 3520 IN PTR dns.quad9.net. + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/cloudflare.com-A python-dnslib-0.9.10/dnslib/test/cloudflare.com-A --- python-dnslib-0.9.7+hg20170303/dnslib/test/cloudflare.com-A 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/cloudflare.com-A 2019-03-24 00:30:08.000000000 +0000 @@ -0,0 +1,17 @@ +;; Sending: +;; QUERY: 6565010000010000000000000a636c6f7564666c61726503636f6d0000010001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25957 +;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;cloudflare.com. IN A + +;; Got answer: +;; RESPONSE: 6565818000010002000000000a636c6f7564666c61726503636f6d0000010001c00c000100010000007a0004c629d7a2c00c000100010000007a0004c629d6a2 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25957 +;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;cloudflare.com. IN A +;; ANSWER SECTION: +cloudflare.com. 122 IN A 198.41.215.162 +cloudflare.com. 122 IN A 198.41.214.162 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/cloudflare.com-AAAA python-dnslib-0.9.10/dnslib/test/cloudflare.com-AAAA --- python-dnslib-0.9.7+hg20170303/dnslib/test/cloudflare.com-AAAA 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/cloudflare.com-AAAA 2019-03-24 00:30:09.000000000 +0000 @@ -0,0 +1,17 @@ +;; Sending: +;; QUERY: f170010000010000000000000a636c6f7564666c61726503636f6d00001c0001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61808 +;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;cloudflare.com. IN AAAA + +;; Got answer: +;; RESPONSE: f170818000010002000000000a636c6f7564666c61726503636f6d00001c0001c00c001c0001000000d80010260647000000000000000000c629d6a2c00c001c0001000000d80010260647000000000000000000c629d7a2 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61808 +;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;cloudflare.com. IN AAAA +;; ANSWER SECTION: +cloudflare.com. 216 IN AAAA 2606:4700::c629:d6a2 +cloudflare.com. 216 IN AAAA 2606:4700::c629:d7a2 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/cloudflare.com-AAAA-dnssec python-dnslib-0.9.10/dnslib/test/cloudflare.com-AAAA-dnssec --- python-dnslib-0.9.7+hg20170303/dnslib/test/cloudflare.com-AAAA-dnssec 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/cloudflare.com-AAAA-dnssec 2019-03-24 00:30:58.000000000 +0000 @@ -0,0 +1,24 @@ +;; Sending: +;; QUERY: 7fbc012000010000000000010a636c6f7564666c61726503636f6d00001c00010000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32700 +;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;cloudflare.com. IN AAAA +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + +;; Got answer: +;; RESPONSE: 7fbc818000010003000000010a636c6f7564666c61726503636f6d00001c0001c00c001c0001000000a60010260647000000000000000000c629d6a2c00c001c0001000000a60010260647000000000000000000c629d7a2c00c002e0001000000a60062001c0d02000002585c982da05c956e8086c90a636c6f7564666c61726503636f6d0022f1cc168f73b417dc75dcf098358bddf5c16307a7019c97d62010108f312418acae0f672250223090e7984b001725e89b8a003a366f437b2806837de44d45e20000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32700 +;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;cloudflare.com. IN AAAA +;; ANSWER SECTION: +cloudflare.com. 166 IN AAAA 2606:4700::c629:d6a2 +cloudflare.com. 166 IN AAAA 2606:4700::c629:d7a2 +cloudflare.com. 166 IN RRSIG AAAA 13 2 600 20190325012344 20190322232344 34505 cloudflare.com. IvHMFo9ztBfcddzwmDWL3fXBYwenAZyX1iAQEI8xJBisrg9nIlAiMJDnmEsAFyXom4oAOjZvQ3soBoN95E1F4g== +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/cloudflare.com-A-dnssec python-dnslib-0.9.10/dnslib/test/cloudflare.com-A-dnssec --- python-dnslib-0.9.7+hg20170303/dnslib/test/cloudflare.com-A-dnssec 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/cloudflare.com-A-dnssec 2019-03-24 00:30:58.000000000 +0000 @@ -0,0 +1,24 @@ +;; Sending: +;; QUERY: fbe9012000010000000000010a636c6f7564666c61726503636f6d00000100010000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64489 +;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;cloudflare.com. IN A +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + +;; Got answer: +;; RESPONSE: fbe9818000010003000000010a636c6f7564666c61726503636f6d0000010001c00c00010001000000480004c629d7a2c00c00010001000000480004c629d6a2c00c002e000100000048006200010d02000002585c982d425c956e2286c90a636c6f7564666c61726503636f6d0027626676f36c672f1c02ff5763c859c0a7e0c31c55004afac409a254709523cc924eec1a1044a1cb56aa069a6305370a27ce10bd7eeeb43383f5c36cc7d05ebe0000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64489 +;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;cloudflare.com. IN A +;; ANSWER SECTION: +cloudflare.com. 72 IN A 198.41.215.162 +cloudflare.com. 72 IN A 198.41.214.162 +cloudflare.com. 72 IN RRSIG A 13 2 600 20190325012210 20190322232210 34505 cloudflare.com. J2JmdvNsZy8cAv9XY8hZwKfgwxxVAEr6xAmiVHCVI8ySTuwaEEShy1aqBppjBTcKJ84QvX7utDOD9cNsx9Bevg== +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/cloudflare.com-CNAME python-dnslib-0.9.10/dnslib/test/cloudflare.com-CNAME --- python-dnslib-0.9.7+hg20170303/dnslib/test/cloudflare.com-CNAME 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/cloudflare.com-CNAME 2019-03-24 00:30:09.000000000 +0000 @@ -0,0 +1,16 @@ +;; Sending: +;; QUERY: 3550010000010000000000000a636c6f7564666c61726503636f6d0000050001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13648 +;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;cloudflare.com. IN CNAME + +;; Got answer: +;; RESPONSE: 3550818000010000000100000a636c6f7564666c61726503636f6d0000050001c00c000600010000012c0020036e7333c00c03646e73c00c7906ce18000027100000096000093a800000012c +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13648 +;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0 +;; QUESTION SECTION: +;cloudflare.com. IN CNAME +;; AUTHORITY SECTION: +cloudflare.com. 300 IN SOA ns3.cloudflare.com. dns.cloudflare.com. 2030489112 10000 2400 604800 300 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/cloudflare.com-CNAME-dnssec python-dnslib-0.9.10/dnslib/test/cloudflare.com-CNAME-dnssec --- python-dnslib-0.9.7+hg20170303/dnslib/test/cloudflare.com-CNAME-dnssec 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/cloudflare.com-CNAME-dnssec 2019-03-24 00:30:59.000000000 +0000 @@ -0,0 +1,25 @@ +;; Sending: +;; QUERY: e589012000010000000000010a636c6f7564666c61726503636f6d00000500010000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58761 +;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;cloudflare.com. IN CNAME +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + +;; Got answer: +;; RESPONSE: e589818000010000000400010a636c6f7564666c61726503636f6d0000050001c00c00060001000000fa0020036e7333c00c03646e73c00c7906ce18000027100000096000093a800000012cc00c002e0001000000fa006200060d020000012c5c982f215c95700186c90a636c6f7564666c61726503636f6d00a4e60dd5218cc44014a2bbd41e7435fea4554793012a03585f0295b523711bff49dc82e82cad966317875892e58bfb68637b8ce9558ecab3fa6c8d8fbc64f5fec00c002f0001000000fa002101000a636c6f7564666c61726503636f6d00000d6205800c440b891c0000000010c00c002e0001000000fa0062002f0d020000012c5c982f215c95700186c90a636c6f7564666c61726503636f6d000616f30c10a1d9d873e13f422c995183fec8fdaf0a5562f64bd2234ea3c5831b8095eec3eda040deeb765b84aaa53cd67b486a55e94644c70c31e7873bba7c1e0000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58761 +;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 1 +;; QUESTION SECTION: +;cloudflare.com. IN CNAME +;; AUTHORITY SECTION: +cloudflare.com. 250 IN SOA ns3.cloudflare.com. dns.cloudflare.com. 2030489112 10000 2400 604800 300 +cloudflare.com. 250 IN RRSIG SOA 13 2 300 20190325013009 20190322233009 34505 cloudflare.com. pOYN1SGMxEAUorvUHnQ1/qRVR5MBKgNYXwKVtSNxG/9J3ILoLK2WYxeHWJLli/toY3uM6VWOyrP6bI2PvGT1/g== +cloudflare.com. 250 IN NSEC \000.cloudflare.com. A NS SOA HINFO MX TXT AAAA LOC SRV CERT SSHFP RRSIG NSEC DNSKEY TLSA HIP CDS CDNSKEY OPENPGPKEY SPF +cloudflare.com. 250 IN RRSIG NSEC 13 2 300 20190325013009 20190322233009 34505 cloudflare.com. BhbzDBCh2dhz4T9CLJlRg/7I/a8KVWL2S9IjTqPFgxuAle7D7aBA3ut2W4SqpTzWe0hqVelGRMcMMeeHO7p8Hg== +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/cloudflare.com-MX python-dnslib-0.9.10/dnslib/test/cloudflare.com-MX --- python-dnslib-0.9.7+hg20170303/dnslib/test/cloudflare.com-MX 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/cloudflare.com-MX 2019-03-24 00:30:09.000000000 +0000 @@ -0,0 +1,20 @@ +;; Sending: +;; QUERY: bafd010000010000000000000a636c6f7564666c61726503636f6d00000f0001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47869 +;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;cloudflare.com. IN MX + +;; Got answer: +;; RESPONSE: bafd818000010005000000000a636c6f7564666c61726503636f6d00000f0001c00c000f00010000239900160028066173706d78320a676f6f676c656d61696cc017c00c000f000100002399000b0032066173706d7833c035c00c000f0001000023990013000a056173706d78016c06676f6f676c65c017c00c000f0001000023990009001404616c7431c067c00c000f0001000023990009001e04616c7432c067 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47869 +;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;cloudflare.com. IN MX +;; ANSWER SECTION: +cloudflare.com. 9113 IN MX 40 aspmx2.googlemail.com. +cloudflare.com. 9113 IN MX 50 aspmx3.googlemail.com. +cloudflare.com. 9113 IN MX 10 aspmx.l.google.com. +cloudflare.com. 9113 IN MX 20 alt1.aspmx.l.google.com. +cloudflare.com. 9113 IN MX 30 alt2.aspmx.l.google.com. + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/cloudflare.com-MX-dnssec python-dnslib-0.9.10/dnslib/test/cloudflare.com-MX-dnssec --- python-dnslib-0.9.7+hg20170303/dnslib/test/cloudflare.com-MX-dnssec 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/cloudflare.com-MX-dnssec 2019-03-24 00:30:58.000000000 +0000 @@ -0,0 +1,27 @@ +;; Sending: +;; QUERY: e5e1012000010000000000010a636c6f7564666c61726503636f6d00000f00010000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58849 +;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;cloudflare.com. IN MX +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + +;; Got answer: +;; RESPONSE: e5e1818000010006000000010a636c6f7564666c61726503636f6d00000f0001c00c000f00010000236800160028066173706d78320a676f6f676c656d61696cc017c00c000f000100002368000b0032066173706d7833c035c00c000f0001000023680013000a056173706d78016c06676f6f676c65c017c00c000f0001000023680009001404616c7431c067c00c000f0001000023680009001e04616c7432c067c00c002e0001000023680062000f0d02000151805c98288a5c95696a86c90a636c6f7564666c61726503636f6d00de2ca7ed9b2422e14550f4afdc33935423978690d5aaed87ada989d7cccff3d0d494ea9bc3e57a320ac979d85ca3aaa915a82e3a8263b396e1c9bf76a30a808e0000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58849 +;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;cloudflare.com. IN MX +;; ANSWER SECTION: +cloudflare.com. 9064 IN MX 40 aspmx2.googlemail.com. +cloudflare.com. 9064 IN MX 50 aspmx3.googlemail.com. +cloudflare.com. 9064 IN MX 10 aspmx.l.google.com. +cloudflare.com. 9064 IN MX 20 alt1.aspmx.l.google.com. +cloudflare.com. 9064 IN MX 30 alt2.aspmx.l.google.com. +cloudflare.com. 9064 IN RRSIG MX 13 2 86400 20190325010202 20190322230202 34505 cloudflare.com. 3iyn7ZskIuFFUPSv3DOTVCOXhpDVqu2HramJ18zP89DUlOqbw+V6MgrJedhco6qpFaguOoJjs5bhyb92owqAjg== +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/cloudflare.com-NS python-dnslib-0.9.10/dnslib/test/cloudflare.com-NS --- python-dnslib-0.9.7+hg20170303/dnslib/test/cloudflare.com-NS 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/cloudflare.com-NS 2019-03-24 00:30:09.000000000 +0000 @@ -0,0 +1,20 @@ +;; Sending: +;; QUERY: ad85010000010000000000000a636c6f7564666c61726503636f6d0000020001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44421 +;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;cloudflare.com. IN NS + +;; Got answer: +;; RESPONSE: ad85818000010005000000000a636c6f7564666c61726503636f6d0000020001c00c0002000100014d590006036e7335c00cc00c0002000100014d590006036e7336c00cc00c0002000100014d590006036e7337c00cc00c0002000100014d590006036e7333c00cc00c0002000100014d590006036e7334c00c +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44421 +;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;cloudflare.com. IN NS +;; ANSWER SECTION: +cloudflare.com. 85337 IN NS ns5.cloudflare.com. +cloudflare.com. 85337 IN NS ns6.cloudflare.com. +cloudflare.com. 85337 IN NS ns7.cloudflare.com. +cloudflare.com. 85337 IN NS ns3.cloudflare.com. +cloudflare.com. 85337 IN NS ns4.cloudflare.com. + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/cloudflare.com-NS-dnssec python-dnslib-0.9.10/dnslib/test/cloudflare.com-NS-dnssec --- python-dnslib-0.9.7+hg20170303/dnslib/test/cloudflare.com-NS-dnssec 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/cloudflare.com-NS-dnssec 2019-03-24 00:30:58.000000000 +0000 @@ -0,0 +1,27 @@ +;; Sending: +;; QUERY: f236012000010000000000010a636c6f7564666c61726503636f6d00000200010000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62006 +;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;cloudflare.com. IN NS +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + +;; Got answer: +;; RESPONSE: f236818000010006000000010a636c6f7564666c61726503636f6d0000020001c00c0002000100014d280006036e7335c00cc00c0002000100014d280006036e7336c00cc00c0002000100014d280006036e7337c00cc00c0002000100014d280006036e7333c00cc00c0002000100014d280006036e7334c00cc00c002e000100014d28006200020d02000151805c982afa5c956bda86c90a636c6f7564666c61726503636f6d00dbd01bc863854d0297485143300f0bd1c12b0672026b3e7645abf0ab51c4f4817c729bc7f728df6908ef982aade084fe45b7849ce724535e9ff78b44772d482c0000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62006 +;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;cloudflare.com. IN NS +;; ANSWER SECTION: +cloudflare.com. 85288 IN NS ns5.cloudflare.com. +cloudflare.com. 85288 IN NS ns6.cloudflare.com. +cloudflare.com. 85288 IN NS ns7.cloudflare.com. +cloudflare.com. 85288 IN NS ns3.cloudflare.com. +cloudflare.com. 85288 IN NS ns4.cloudflare.com. +cloudflare.com. 85288 IN RRSIG NS 13 2 86400 20190325011226 20190322231226 34505 cloudflare.com. 29AbyGOFTQKXSFFDMA8L0cErBnICaz52Ravwq1HE9IF8cpvH9yjfaQjvmCqt4IT+RbeEnOckU16f94tEdy1ILA== +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/cloudflare.com-SOA python-dnslib-0.9.10/dnslib/test/cloudflare.com-SOA --- python-dnslib-0.9.7+hg20170303/dnslib/test/cloudflare.com-SOA 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/cloudflare.com-SOA 2019-03-24 00:30:09.000000000 +0000 @@ -0,0 +1,16 @@ +;; Sending: +;; QUERY: 8928010000010000000000000a636c6f7564666c61726503636f6d0000060001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35112 +;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;cloudflare.com. IN SOA + +;; Got answer: +;; RESPONSE: 8928818000010001000000000a636c6f7564666c61726503636f6d0000060001c00c00060001000000ad0020036e7333c00c03646e73c00c7906ce18000027100000096000093a800000012c +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35112 +;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;cloudflare.com. IN SOA +;; ANSWER SECTION: +cloudflare.com. 173 IN SOA ns3.cloudflare.com. dns.cloudflare.com. 2030489112 10000 2400 604800 300 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/cloudflare.com-SOA-dnssec python-dnslib-0.9.10/dnslib/test/cloudflare.com-SOA-dnssec --- python-dnslib-0.9.7+hg20170303/dnslib/test/cloudflare.com-SOA-dnssec 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/cloudflare.com-SOA-dnssec 2019-03-24 00:30:59.000000000 +0000 @@ -0,0 +1,23 @@ +;; Sending: +;; QUERY: 7bda012000010000000000010a636c6f7564666c61726503636f6d00000600010000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31706 +;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;cloudflare.com. IN SOA +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + +;; Got answer: +;; RESPONSE: 7bda818000010002000000010a636c6f7564666c61726503636f6d0000060001c00c000600010000007b0020036e7333c00c03646e73c00c7906ce18000027100000096000093a800000012cc00c002e00010000007b006200060d020000012c5c982ea25c956f8286c90a636c6f7564666c61726503636f6d00d398fbecbd928a65f32cc7399e12d907e42274a015ff9ee3734adfb395a5a6e63f28e4905f66841a9e3c5479323784f29197c6813b45f96f4d4e4df9c389832b0000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31706 +;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;cloudflare.com. IN SOA +;; ANSWER SECTION: +cloudflare.com. 123 IN SOA ns3.cloudflare.com. dns.cloudflare.com. 2030489112 10000 2400 604800 300 +cloudflare.com. 123 IN RRSIG SOA 13 2 300 20190325012802 20190322232802 34505 cloudflare.com. 05j77L2SimXzLMc5nhLZB+QidKAV/57jc0rfs5WlpuY/KOSQX2aEGp48VHkyN4TykZfGgTtF+W9NTk35w4mDKw== +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/cloudflare.com-TXT python-dnslib-0.9.10/dnslib/test/cloudflare.com-TXT --- python-dnslib-0.9.7+hg20170303/dnslib/test/cloudflare.com-TXT 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/cloudflare.com-TXT 2019-03-24 00:30:09.000000000 +0000 @@ -0,0 +1,21 @@ +;; Sending: +;; QUERY: 415a010000010000000000000a636c6f7564666c61726503636f6d0000100001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16730 +;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;cloudflare.com. IN TXT + +;; Got answer: +;; RESPONSE: 415a818000010006000000000a636c6f7564666c61726503636f6d0000100001c00c001000010000012b004544676f6f676c652d736974652d766572696669636174696f6e3d43377468664e65585661686b56686e6969715449316953566e456c4b525f6b4242746e45486b6547446c6fc00c001000010000012b003f3e6c6f676d65696e2d766572696669636174696f6e2d636f64653d62333433336338362d333832332d343830382d386137652d353830343234363966363534c00c001000010000012b002d2c7374617475732d706167652d646f6d61696e2d766572696669636174696f6e3d7231346672776c6a77627873c00c001000010000012b000e0d4d533d6d733730323734313834c00c001000010000012b003c3b66616365626f6f6b2d646f6d61696e2d766572696669636174696f6e3d68396d6d367a6f706a367032706f3534776f6131366d3562736b6d366f6fc00c001000010000012b00b3b2763d73706631206970343a3139392e31352e3231322e302f3232206970343a3137332e3234352e34382e302f323020696e636c7564653a5f7370662e676f6f676c652e636f6d20696e636c7564653a737066312e6d6373762e6e657420696e636c7564653a7370662e6d616e6472696c6c6170702e636f6d20696e636c7564653a6d61696c2e7a656e6465736b2e636f6d2020696e636c7564653a73747370672d637573746f6d65722e636f6d202d616c6c +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16730 +;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;cloudflare.com. IN TXT +;; ANSWER SECTION: +cloudflare.com. 299 IN TXT "google-site-verification=C7thfNeXVahkVhniiqTI1iSVnElKR_kBBtnEHkeGDlo" +cloudflare.com. 299 IN TXT "logmein-verification-code=b3433c86-3823-4808-8a7e-58042469f654" +cloudflare.com. 299 IN TXT "status-page-domain-verification=r14frwljwbxs" +cloudflare.com. 299 IN TXT "MS=ms70274184" +cloudflare.com. 299 IN TXT "facebook-domain-verification=h9mm6zopj6p2po54woa16m5bskm6oo" +cloudflare.com. 299 IN TXT "v=spf1 ip4:199.15.212.0/22 ip4:173.245.48.0/20 include:_spf.google.com include:spf1.mcsv.net include:spf.mandrillapp.com include:mail.zendesk.com include:stspg-customer.com -all" + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/cloudflare.com-TXT-dnssec python-dnslib-0.9.10/dnslib/test/cloudflare.com-TXT-dnssec --- python-dnslib-0.9.7+hg20170303/dnslib/test/cloudflare.com-TXT-dnssec 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/cloudflare.com-TXT-dnssec 2019-03-24 00:30:58.000000000 +0000 @@ -0,0 +1,28 @@ +;; Sending: +;; QUERY: 3051012000010000000000010a636c6f7564666c61726503636f6d00001000010000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12369 +;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;cloudflare.com. IN TXT +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + +;; Got answer: +;; RESPONSE: 3051818000010007000000010a636c6f7564666c61726503636f6d0000100001c00c0010000100000088002d2c7374617475732d706167652d646f6d61696e2d766572696669636174696f6e3d7231346672776c6a77627873c00c0010000100000088003c3b66616365626f6f6b2d646f6d61696e2d766572696669636174696f6e3d68396d6d367a6f706a367032706f3534776f6131366d3562736b6d366f6fc00c0010000100000088003f3e6c6f676d65696e2d766572696669636174696f6e2d636f64653d62333433336338362d333832332d343830382d386137652d353830343234363966363534c00c0010000100000088004544676f6f676c652d736974652d766572696669636174696f6e3d43377468664e65585661686b56686e6969715449316953566e456c4b525f6b4242746e45486b6547446c6fc00c001000010000008800b3b2763d73706631206970343a3139392e31352e3231322e302f3232206970343a3137332e3234352e34382e302f323020696e636c7564653a5f7370662e676f6f676c652e636f6d20696e636c7564653a737066312e6d6373762e6e657420696e636c7564653a7370662e6d616e6472696c6c6170702e636f6d20696e636c7564653a6d61696c2e7a656e6465736b2e636f6d2020696e636c7564653a73747370672d637573746f6d65722e636f6d202d616c6cc00c0010000100000088000e0d4d533d6d733730323734313834c00c002e000100000088006200100d020000012c5c982eae5c956f8e86c90a636c6f7564666c61726503636f6d002f0b50fe9575fcaab036ecf7a72d66717f0ae2d89af6a31c85bd6228263fc5878c910303cd3e173434420a1612452cf14e5b7efcb950bf463428b5948e2cb7a40000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12369 +;; flags: qr rd ra; QUERY: 1, ANSWER: 7, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;cloudflare.com. IN TXT +;; ANSWER SECTION: +cloudflare.com. 136 IN TXT "status-page-domain-verification=r14frwljwbxs" +cloudflare.com. 136 IN TXT "facebook-domain-verification=h9mm6zopj6p2po54woa16m5bskm6oo" +cloudflare.com. 136 IN TXT "logmein-verification-code=b3433c86-3823-4808-8a7e-58042469f654" +cloudflare.com. 136 IN TXT "google-site-verification=C7thfNeXVahkVhniiqTI1iSVnElKR_kBBtnEHkeGDlo" +cloudflare.com. 136 IN TXT "v=spf1 ip4:199.15.212.0/22 ip4:173.245.48.0/20 include:_spf.google.com include:spf1.mcsv.net include:spf.mandrillapp.com include:mail.zendesk.com include:stspg-customer.com -all" +cloudflare.com. 136 IN TXT "MS=ms70274184" +cloudflare.com. 136 IN RRSIG TXT 13 2 300 20190325012814 20190322232814 34505 cloudflare.com. LwtQ/pV1/KqwNuz3py1mcX8K4tia9qMchb1iKCY/xYeMkQMDzT4XNDRCChYSRSzxTlt+/LlQv0Y0KLWUjiy3pA== +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/e164.org-NAPTR python-dnslib-0.9.10/dnslib/test/e164.org-NAPTR --- python-dnslib-0.9.7+hg20170303/dnslib/test/e164.org-NAPTR 2017-03-01 17:38:14.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/e164.org-NAPTR 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -;; Sending: -;; QUERY: 1235010000010000000000000130013001300130013101310131013301390133013001310138013701380465313634036f72670000230001 -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4661 -;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 -;; QUESTION SECTION: -;0.0.0.0.1.1.1.3.9.3.0.1.8.7.8.e164.org. IN NAPTR - -;; Got answer: -;; RESPONSE: 1235818000010001000000000130013001300130013101310131013301390133013001310138013701380465313634036f72670000230001c00c002300010000540200320064000a0175074532552b53495022215e5c2b3f282e2a2924217369703a5c5c31406677642e70756c7665722e636f6d2100 -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4661 -;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 -;; QUESTION SECTION: -;0.0.0.0.1.1.1.3.9.3.0.1.8.7.8.e164.org. IN NAPTR -;; ANSWER SECTION: -0.0.0.0.1.1.1.3.9.3.0.1.8.7.8.e164.org. 21506 IN NAPTR 100 10 "u" "E2U+SIP" "!^\\+?(.*)$!sip:\\\\1@fwd.pulver.com!" . - diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/ECC94C1D-7026-41AA-B47E-FDFE40EB9957.com-A python-dnslib-0.9.10/dnslib/test/ECC94C1D-7026-41AA-B47E-FDFE40EB9957.com-A --- python-dnslib-0.9.7+hg20170303/dnslib/test/ECC94C1D-7026-41AA-B47E-FDFE40EB9957.com-A 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/ECC94C1D-7026-41AA-B47E-FDFE40EB9957.com-A 2019-03-23 19:14:44.000000000 +0000 @@ -0,0 +1,16 @@ +;; Sending: +;; QUERY: 12ac010000010000000000002445434339344331442d373032362d343141412d423437452d46444645343045423939353703636f6d0000010001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4780 +;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;ECC94C1D-7026-41AA-B47E-FDFE40EB9957.com. IN A + +;; Got answer: +;; RESPONSE: 12ac818300010000000100002445434339344331442d373032362d343141412d423437452d46444645343045423939353703636f6d0000010001c0310006000100000384003d01610c67746c642d73657276657273036e657400056e73746c640c766572697369676e2d677273c0315c96858c000007080000038400093a8000015180 +;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 4780 +;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0 +;; QUESTION SECTION: +;ECC94C1D-7026-41AA-B47E-FDFE40EB9957.com. IN A +;; AUTHORITY SECTION: +com. 900 IN SOA a.gtld-servers.net. nstld.verisign-grs.com. 1553368460 1800 900 604800 86400 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/example.com-ANY python-dnslib-0.9.10/dnslib/test/example.com-ANY --- python-dnslib-0.9.7+hg20170303/dnslib/test/example.com-ANY 2017-03-01 17:38:14.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/example.com-ANY 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,0 @@ -;; Sending: -;; QUERY: e42401000001000000000000076578616d706c6503636f6d0000ff0001 -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58404 -;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 -;; QUESTION SECTION: -;example.com. IN ANY - -;; Got answer: -;; RESPONSE: e42481800001001200000000076578616d706c6503636f6d0000ff0001c00c0006000100000df1002d03736e7303646e73056963616e6e036f726700036e6f63c02d77fd85fd00001c2000000e100012750000000e10c00c000100010000544100045db8d877c00c002e000100005441009f00010802000151805367224b535d68421927076578616d706c6503636f6d007102c2139c377d9eb02f67de77a6bd8f58d6ba831dbcfcb5622dadf68b7c9b1430f8e82673a636e3dac4541d6c0d4e7cdebc8978364f5161500fbd739477432e3d654860eefbefc7a575e63c2d088acafba4e6af152841ec98bc5547c55adde23f8d9fd8a8e15251a148bd96da491aea510532be30a0c4926ee5265fd97612c1c00c0002000100005441001401610c69616e612d73657276657273036e657400c00c000200010000544100040162c11fc00c002e000100005441009f000208020002a30053670424535d68421927076578616d706c6503636f6d001726dd76c3fbd0851557d24c53fa0c8576388fbddb8777d3ccc16abe0d756de2d367320a8d98f613c0357c8648e64c80e00eb9dd9d1ff09ccb7e4806eb49924b7ef85cf9b2f3dc2cd99a8e8f1535d10e037c2a37fee3a3e6b534e9f67176605b13e77315bbd38f712d97a05fc91ee378c9b73dc1d3b231350f94175cc213c2f6c00c002e000100000df1009f0006080200000e105366c9fa535d68421927076578616d706c6503636f6d003e71f9ee2b02c8796f745af6d41d7d633abdb56596243a12c3d3a1641f2ecd2e3f8b49c60ed9efbb814d801f6d5ca6af02fb81189435fdba3b07937a5f21a225a4c7fb28f0af15d5b7947fd8dc552eab88ba821bf8051394c189edd3a645b9c616e9923a87b39baa54095dfccf064a8ea5076571b71ef4806666dff597917cb7c00c001000010000001d000c0b763d73706631202d616c6cc00c001000010000001d0035342449643a206578616d706c652e636f6d203139323120323031332d31302d32312030343a30303a33395a20646b6e696768742024c00c002e00010000001d009f001008020000003c5366d73d535d68421927076578616d706c6503636f6d00563226ba14d3e01b3ca716fa7f6c43eff81a4bf121a870fc193d962bf0443a81b6e696a2473a597aba4dc51b29abb68d06f8b6bd421113e90220cd23aeb404c7245fe6ea1ef73780f3463e33bd192de1e3aa6c6de63364a3c003d1bdaf7f88057da608209eabf85fee3f0436be2e7adaad0c44391b3c51a9a0fcc8f5b70ae0e4c00c001c0001000054410010260628000220006d26bf144710970aa7c00c002e000100005441009f001c0802000151805366f55f535d68421927076578616d706c6503636f6d003817df928147fb0feb3b80a7c98f4e58fba5469936f49be5d694f9c2e741fdf8552f6d5cb5444589fb81c0baa6731ba24bf92d32876b6c1b81a2234ae5449ba05eb5d66d8da88d17d86339a6416c1bb35817a52cf1709987cfa58d83ac4b7afe3ca5ce514551ad509f1e9b05e63bb61964e52b883b5a6bb449d730a77d037cccc00c0030000100000df101080101030803010001ac2dec7a6523933c18602cc6ec82ca317497e42572054dd75091678bcfebaa9b0c25f40674a1675d4119bfffe33486ffc9a60478ab2f614b83e995b882318a0fa2ae86588e1e224ca54e86fda165fb51c32ad01cafbea97bc2096377922e75446fdef11e2438457bd6b67c3a042f3d6c7a17dd6aae8a8e3e971fecf3f18a9a5e1ce9fe3f19cfd21a722f2a359b1d6b3ecfdc3292f78ce32e7c63fe2c9621f9f054ee5b74b0fe62d3d1da24faeecf264c2fd04fb69bfc640750870b57546d3e327113daa4ffd7e4e58e9c599fac9e7a0151085447063328ea2891267516adafe4964ae0127d90f815c64ce3134ca41d633e0ec5811ad73edaa6eddad3d7583413c00c0030000100000df100880100030803010001a78e26559e478c1470e50dc96cb173a5f71881cdbd930780d4622cd6b70020b61e7242f5c97e7d1953cff7df5b61e100b8a0f4831adb8c6004c416fb140bc07c326f7c6c5380b8811306e00cd79850f61fad150bceeb3ef8485fda885be7ecf92ad9b1afc4163c5dff2d80eca073e8861c359064d2e9b7ae43064152211de795c00c0030000100000df101080101030803010001e8a4bf16e86699fd542c66dd80cb1e8e344af03d1264702471d0c89d0e0b3ad04910528a9a23ad6ef21125d68830f2cdf952f2b8330ececcddf21d49db8e772362e790e65cf7644bc1d83914cc372cc5b123a0fb1c7ab54c922b6a785808656ec24d2f3e0891009e939f4da0304e2f2435e67a6cafb4e07dbfc71d4ef398232f9f18744aa3b697286741f936f5385cde70b828d24d6f776b8d628eb82c399a0fb61ab11961cfd5a9d786beb3824367a5f23599a525397316fb11d132e01f6711e6620691d7699e5727e7b08b8be67142b9ff8e3998626a578ac37a2732e7f4a10bf049f35bf76c844f59e6ef0d12660db8ebd9df4c9cb5d413bcb2113ad0775fc00c002e000100000df1011f0030080200000e105366ff19535d68427b65076578616d706c6503636f6d00d1e77998935c63796316122e6b27feec3351801a0eaa066d45d900dfac7902db361dcc10067e9cfaa8b56ca6ed7c2757db5701d3a72b541f3ec3b2d388738297e1b6c5d3ea1b09751e6411e3e4f2b98a68f02c81fbe657a50c341aa890f9b5871029854ae0517bba620d146903230e2240b32cf785a63623eaafddea8bff64fdbe995bf2cfa306876d18ac74d9fcef65573a840fcdfb6bba5001d83b86261baa3a8baa81d2318be437ca5f3fdc7ae3eb39030231368d55b87e050ee0e5f41de3793b28b646d5ba2ef5ca820f22ff1cccad7b44e19e883a77dc3e8ed4fb70708f7eef955d48e556dc4140cb250aec1c73a9fe4f9f3b252026aab973db06b78d79c00c002f000100000df1001a03777777076578616d706c6503636f6d00000762008008000380c00c002e000100000df1009f002f080200000e105366c0cc535d68421927076578616d706c6503636f6d000e879eab3067c41bed4f27782b87596c3ab95d72928a5e71026c92af5b149efab4d693a920d34a84463ca2ba3c3af76ba0ae9a153210a67d304433adf60ef9f238c6adfeef78fa60ecd1962b0175ac1ce1054bc796591468195f78379f5bb741a7852c6ae88979f692f7f0461b468a66504d48cf7d215220ed2cea664d4870e1 -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58404 -;; flags: qr rd ra; QUERY: 1, ANSWER: 18, AUTHORITY: 0, ADDITIONAL: 0 -;; QUESTION SECTION: -;example.com. IN ANY -;; ANSWER SECTION: -example.com. 3569 IN SOA sns.dns.icann.org. noc.dns.icann.org. 2013103613 7200 3600 1209600 3600 -example.com. 21569 IN A 93.184.216.119 -example.com. 21569 IN RRSIG A 8 2 86400 20140505053155 20140427202746 6439 example.com. cQLCE5w3fZ6wL2fed6a9j1jWuoMdvPy1Yi2t9ot8mxQw+Ogmc6Y249rEVB1sDU583ryJeDZPUWFQD71zlHdDLj1lSGDu++/HpXXmPC0Iisr7pOavFShB7Ji8VUfFWt3iP42f2KjhUlGhSL2W2kka6lEFMr4woMSSbuUmX9l2EsE= -example.com. 21569 IN NS a.iana-servers.net. -example.com. 21569 IN NS b.iana-servers.net. -example.com. 21569 IN RRSIG NS 8 2 172800 20140505032316 20140427202746 6439 example.com. FybddsP70IUVV9JMU/oMhXY4j73bh3fTzMFqvg11beLTZzIKjZj2E8A1fIZI5kyA4A653Z0f8JzLfkgG60mSS374XPmy89ws2ZqOjxU10Q4DfCo3/uOj5rU06fZxdmBbE+dzFbvTj3Etl6BfyR7jeMm3PcHTsjE1D5QXXMITwvY= -example.com. 3569 IN RRSIG SOA 8 2 3600 20140504231506 20140427202746 6439 example.com. PnH57isCyHlvdFr21B19Yzq9tWWWJDoSw9OhZB8uzS4/i0nGDtnvu4FNgB9tXKavAvuBGJQ1/bo7B5N6XyGiJaTH+yjwrxXVt5R/2NxVLquIuoIb+AUTlMGJ7dOmRbnGFumSOoezm6pUCV38zwZKjqUHZXG3HvSAZmbf9ZeRfLc= -example.com. 29 IN TXT "v=spf1 -all" -example.com. 29 IN TXT "$Id: example.com 1921 2013-10-21 04:00:39Z dknight $" -example.com. 29 IN RRSIG TXT 8 2 60 20140505001141 20140427202746 6439 example.com. VjImuhTT4Bs8pxb6f2xD7/gaS/EhqHD8GT2WK/BEOoG25paiRzpZerpNxRspq7aNBvi2vUIRE+kCIM0jrrQExyRf5uoe9zeA80Y+M70ZLeHjqmxt5jNko8AD0b2vf4gFfaYIIJ6r+F/uPwQ2vi562q0MRDkbPFGpoPzI9bcK4OQ= -example.com. 21569 IN AAAA 2606:2800:220:6d:26bf:1447:1097:aa7 -example.com. 21569 IN RRSIG AAAA 8 2 86400 20140505022015 20140427202746 6439 example.com. OBffkoFH+w/rO4CnyY9OWPulRpk29Jvl1pT5wudB/fhVL21ctURFifuBwLqmcxuiS/ktModrbBuBoiNK5USboF611m2NqI0X2GM5pkFsG7NYF6Us8XCZh8+ljYOsS3r+PKXOUUVRrVCfHpsF5ju2GWTlK4g7Wmu0Sdcwp30DfMw= -example.com. 3569 IN DNSKEY 257 3 8 AwEAAawt7HplI5M8GGAsxuyCyjF0l+QlcgVN11CRZ4vP66qbDCX0BnShZ11BGb//4zSG/8mmBHirL2FLg+mVuIIxig+iroZYjh4iTKVOhv2hZftRwyrQHK++qXvCCWN3ki51RG/e8R4kOEV71rZ8OgQvPWx6F91qroqOPpcf7PPxippeHOn+PxnP0hpyLyo1mx1rPs/cMpL3jOMufGP+LJYh+fBU7lt0sP5i09HaJPruzyZML9BPtpv8ZAdQhwtXVG0+MnET2qT/1+TljpxZn6yeegFRCFRHBjMo6iiRJnUWra/klkrgEn2Q+BXGTOMTTKQdYz4OxYEa1z7apu3a09dYNBM= -example.com. 3569 IN DNSKEY 256 3 8 AwEAAaeOJlWeR4wUcOUNyWyxc6X3GIHNvZMHgNRiLNa3ACC2HnJC9cl+fRlTz/ffW2HhALig9IMa24xgBMQW+xQLwHwyb3xsU4C4gRMG4AzXmFD2H60VC87rPvhIX9qIW+fs+SrZsa/EFjxd/y2A7KBz6IYcNZBk0um3rkMGQVIhHeeV -example.com. 3569 IN DNSKEY 257 3 8 AwEAAeikvxboZpn9VCxm3YDLHo40SvA9EmRwJHHQyJ0OCzrQSRBSipojrW7yESXWiDDyzflS8rgzDs7M3fIdSduOdyNi55DmXPdkS8HYORTMNyzFsSOg+xx6tUySK2p4WAhlbsJNLz4IkQCek59NoDBOLyQ15npsr7Tgfb/HHU7zmCMvnxh0SqO2lyhnQfk29Thc3nC4KNJNb3drjWKOuCw5mg+2GrEZYc/VqdeGvrOCQ2el8jWZpSU5cxb7EdEy4B9nEeZiBpHXaZ5XJ+ewi4vmcUK5/445mGJqV4rDeicy5/ShC/BJ81v3bIRPWebvDRJmDbjr2d9MnLXUE7yyETrQd18= -example.com. 3569 IN RRSIG DNSKEY 8 2 3600 20140505030145 20140427202746 31589 example.com. 0ed5mJNcY3ljFhIuayf+7DNRgBoOqgZtRdkA36x5Ats2HcwQBn6c+qi1bKbtfCdX21cB06crVB8+w7LTiHOCl+G2xdPqGwl1HmQR4+TyuYpo8CyB++ZXpQw0GqiQ+bWHECmFSuBRe7piDRRpAyMOIkCzLPeFpjYj6q/d6ov/ZP2+mVvyz6MGh20YrHTZ/O9lVzqED837a7pQAdg7hiYbqjqLqoHSMYvkN8pfP9x64+s5AwIxNo1VuH4FDuDl9B3jeTsotkbVui71yoIPIv8czK17ROGeiDp33D6O1PtwcI9+75VdSOVW3EFAyyUK7Bxzqf5PnzslICaquXPbBreNeQ== -example.com. 3569 IN NSEC 03777777076578616d706c6503636f6d00000762008008000380 -example.com. 3569 IN RRSIG NSEC 8 2 3600 20140504223556 20140427202746 6439 example.com. DoeeqzBnxBvtTyd4K4dZbDq5XXKSil5xAmySr1sUnvq01pOpINNKhEY8oro8OvdroK6aFTIQpn0wRDOt9g758jjGrf7vePpg7NGWKwF1rBzhBUvHllkUaBlfeDefW7dBp4UsauiJefaS9/BGG0aKZlBNSM99IVIg7SzqZk1IcOE= - diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/example.org-DNSKEY python-dnslib-0.9.10/dnslib/test/example.org-DNSKEY --- python-dnslib-0.9.7+hg20170303/dnslib/test/example.org-DNSKEY 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/example.org-DNSKEY 2019-03-23 19:17:39.000000000 +0000 @@ -0,0 +1,18 @@ +;; Sending: +;; QUERY: 77d801000001000000000000076578616d706c65036f72670000300001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30680 +;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;example.org. IN DNSKEY + +;; Got answer: +;; RESPONSE: 77d881800001000300000000076578616d706c65036f72670000300001c00c0030000100000e0f00880100030803010001a10808944d86b4fe572c0261ef914b89babbb20b4d0abb4bf26562b3950281210d4edc3e5d3d5e5206071d8fc104a41cfd4501281ea131e7dca20b37808ed8bca380a8f9849ded2f999a349742592adab6c3b8ebe0aff9dc53f9b21fd2744efdc5ffb7778ffe879d953b92a7736e5c6c1de5143f10ba0b67f165dbcb18da59abc00c0030000100000e0f010801010308030100019b5699b076372443f285fb25e3547e6241f76f0b04447a978e13a24aa164338bda0e88cb12eff4abb4d97fc2e748b251e2b5af896bf6cf567524801fe422de8cde5ef859bf301c810ccd2758d48f84d7b9f5e49a5e10232f64c0bd7c3778d18b3b3e4a3f20cf9e944303cbd49dccdeb858bd2ac5d1adb3418b7c56dd3e1c650d267689edd4c16df00b89425cd004ee1ca394d4b7be3dbd1bff743a6f8006dd934a722c32f076fdc2ba1e030bf9fffb5f7d3813432e03e39e381d90949115bc6fffa3342a73770eb1ee0e1e740f77f32f9fe189ce9fed1b239a52a41e080c6f862a0ac53b680011db6dba3ca5c49c6c9beb25c74427f16aef47f659bdc6275efbc00c0030000100000e0f01080101030803010001ac88630a7a8b159f8583384c7ad6b553952dbb492de91e5e834035fae8180ffd479ca73e199157932e7c2825b8f097b34c5c58a331ba78202df426f3b2ff2a42fef56e94c796825880255486c3f958a8557b876e6696d125170298b5c086aaf723fd3f4a157db292aa540b40f6eface4c65c0791f9700046482b3c941a7530f0df303b62e833a07fe32449a32b700655151bd77641c94b1ff9a027549980b41765dfbef698ddab2e868209aeb0c82ad3d1865c1ebc62306a3c27f2a353fd4889d7ee7ec3871f5890dc22e857429f8500c16f7dd2f131f7d1cbbc5823e62a124d5a36e12da4ca4c357418a97f188617dc829c34b63d4d98e4c149ce7047353311 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30680 +;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;example.org. IN DNSKEY +;; ANSWER SECTION: +example.org. 3599 IN DNSKEY 256 3 8 AwEAAaEICJRNhrT+VywCYe+RS4m6u7ILTQq7S/JlYrOVAoEhDU7cPl09XlIGBx2PwQSkHP1FASgeoTHn3KILN4CO2LyjgKj5hJ3tL5maNJdCWSratsO46+Cv+dxT+bIf0nRO/cX/t3eP/oedlTuSp3NuXGwd5RQ/ELoLZ/Fl28sY2lmr +example.org. 3599 IN DNSKEY 257 3 8 AwEAAZtWmbB2NyRD8oX7JeNUfmJB928LBER6l44TokqhZDOL2g6IyxLv9Ku02X/C50iyUeK1r4lr9s9WdSSAH+Qi3ozeXvhZvzAcgQzNJ1jUj4TXufXkml4QIy9kwL18N3jRizs+Sj8gz56UQwPL1J3M3rhYvSrF0a2zQYt8Vt0+HGUNJnaJ7dTBbfALiUJc0ATuHKOU1Le+Pb0b/3Q6b4AG3ZNKciwy8Hb9wroeAwv5//tffTgTQy4D4544HZCUkRW8b/+jNCpzdw6x7g4edA938y+f4YnOn+0bI5pSpB4IDG+GKgrFO2gAEdttujylxJxsm+slx0Qn8WrvR/ZZvcYnXvs= +example.org. 3599 IN DNSKEY 257 3 8 AwEAAayIYwp6ixWfhYM4THrWtVOVLbtJLekeXoNANfroGA/9R5ynPhmRV5MufCgluPCXs0xcWKMxunggLfQm87L/KkL+9W6Ux5aCWIAlVIbD+VioVXuHbmaW0SUXApi1wIaq9yP9P0oVfbKSqlQLQPbvrOTGXAeR+XAARkgrPJQadTDw3zA7YugzoH/jJEmjK3AGVRUb13ZByUsf+aAnVJmAtBdl3772mN2rLoaCCa6wyCrT0YZcHrxiMGo8J/KjU/1IidfufsOHH1iQ3CLoV0KfhQDBb33S8TH30cu8WCPmKhJNWjbhLaTKTDV0GKl/GIYX3IKcNLY9TZjkwUnOcEc1MxE= + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/example.org-MX-dnssec python-dnslib-0.9.10/dnslib/test/example.org-MX-dnssec --- python-dnslib-0.9.7+hg20170303/dnslib/test/example.org-MX-dnssec 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/example.org-MX-dnssec 2019-03-23 19:07:24.000000000 +0000 @@ -0,0 +1,25 @@ +;; Sending: +;; QUERY: f13c01200001000000000001076578616d706c65036f726700000f00010000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61756 +;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;example.org. IN MX +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + +;; Got answer: +;; RESPONSE: f13c81800001000000040001076578616d706c65036f726700000f0001c00c000600010000098b002a03736e7303646e73056963616e6ec014036e6f63c02d7849f56900001c2000000e100012750000000e10c00c002e00010000098b009f0006080200000e105cabcb065c90978c6c61076578616d706c65036f726700319c0f8317c42e880b3bbfc3a317683f181b58ee223a3b8c446af88f9d8f9432eb8d66fbf9b062b9c7a30b6a413f997953454191487ffe1c98ac1b5730ac538f41a549db8809dbb442665bc5419c4c9b1b2f450f4e09cdcdb93c25589be2a4967ff4e4fd47216fb61b61529f45a27f21a066f4a1492aba72aeeeb7b952af3d55c00c002f000100000ddd001a03777777076578616d706c65036f726700000762008008000380c00c002e000100000ddd009f002f080200000e105ca6c66d5c8a708b6c61076578616d706c65036f726700753ef330045e9f071ee0c89eee705856f9b55879c34bdae1c2f20be8bbcc3990c9d550f330e7f83f6a62139ab518c57505fc72d323d4eb4cad74bcc2daabefdcf3bb844e7de9fbcfe7531c414b5737ca935401862c295289704ca9df53b354ea5b7e48032e271f2ccfb58b545bdae231804594a5ae94e8d2b32ab74b5332b4d40000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61756 +;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 1 +;; QUESTION SECTION: +;example.org. IN MX +;; AUTHORITY SECTION: +example.org. 2443 IN SOA sns.dns.icann.org. noc.dns.icann.org. 2018112873 7200 3600 1209600 3600 +example.org. 2443 IN RRSIG SOA 8 2 3600 20190408222822 20190319071732 27745 example.org. MZwPgxfELogLO7/DoxdoPxgbWO4iOjuMRGr4j52PlDLrjWb7+bBiucejC2pBP5l5U0VBkUh//hyYrBtXMKxTj0GlSduICdu0QmZbxUGcTJsbL0UPTgnNzbk8JVib4qSWf/Tk/Uchb7YbYVKfRaJ/IaBm9KFJKrpyru63uVKvPVU= +example.org. 3549 IN NSEC www.example.org. A NS SOA TXT AAAA RRSIG NSEC DNSKEY +example.org. 3549 IN RRSIG NSEC 8 2 3600 20190405030725 20190314151731 27745 example.org. dT7zMARenwce4Mie7nBYVvm1WHnDS9rhwvIL6LvMOZDJ1VDzMOf4P2piE5q1GMV1Bfxy0yPU60ytdLzC2qvv3PO7hE596fvP51McQUtXN8qTVAGGLClSiXBMqd9Ts1TqW35IAy4nHyzPtYtUW9riMYBFlKWulOjSsyq3S1MytNQ= +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/example.org-PTR-dnssec python-dnslib-0.9.10/dnslib/test/example.org-PTR-dnssec --- python-dnslib-0.9.7+hg20170303/dnslib/test/example.org-PTR-dnssec 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/example.org-PTR-dnssec 2019-03-23 19:07:24.000000000 +0000 @@ -0,0 +1,25 @@ +;; Sending: +;; QUERY: a9f301200001000000000001076578616d706c65036f726700000c00010000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43507 +;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;example.org. IN PTR +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + +;; Got answer: +;; RESPONSE: a9f381800001000000040001076578616d706c65036f726700000c0001c00c000600010000098c002a03736e7303646e73056963616e6ec014036e6f63c02d7849f56900001c2000000e100012750000000e10c00c002e00010000098c009f0006080200000e105cabcb065c90978c6c61076578616d706c65036f726700319c0f8317c42e880b3bbfc3a317683f181b58ee223a3b8c446af88f9d8f9432eb8d66fbf9b062b9c7a30b6a413f997953454191487ffe1c98ac1b5730ac538f41a549db8809dbb442665bc5419c4c9b1b2f450f4e09cdcdb93c25589be2a4967ff4e4fd47216fb61b61529f45a27f21a066f4a1492aba72aeeeb7b952af3d55c00c002f000100000dde001a03777777076578616d706c65036f726700000762008008000380c00c002e000100000dde009f002f080200000e105ca6c66d5c8a708b6c61076578616d706c65036f726700753ef330045e9f071ee0c89eee705856f9b55879c34bdae1c2f20be8bbcc3990c9d550f330e7f83f6a62139ab518c57505fc72d323d4eb4cad74bcc2daabefdcf3bb844e7de9fbcfe7531c414b5737ca935401862c295289704ca9df53b354ea5b7e48032e271f2ccfb58b545bdae231804594a5ae94e8d2b32ab74b5332b4d40000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43507 +;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 1 +;; QUESTION SECTION: +;example.org. IN PTR +;; AUTHORITY SECTION: +example.org. 2444 IN SOA sns.dns.icann.org. noc.dns.icann.org. 2018112873 7200 3600 1209600 3600 +example.org. 2444 IN RRSIG SOA 8 2 3600 20190408222822 20190319071732 27745 example.org. MZwPgxfELogLO7/DoxdoPxgbWO4iOjuMRGr4j52PlDLrjWb7+bBiucejC2pBP5l5U0VBkUh//hyYrBtXMKxTj0GlSduICdu0QmZbxUGcTJsbL0UPTgnNzbk8JVib4qSWf/Tk/Uchb7YbYVKfRaJ/IaBm9KFJKrpyru63uVKvPVU= +example.org. 3550 IN NSEC www.example.org. A NS SOA TXT AAAA RRSIG NSEC DNSKEY +example.org. 3550 IN RRSIG NSEC 8 2 3600 20190405030725 20190314151731 27745 example.org. dT7zMARenwce4Mie7nBYVvm1WHnDS9rhwvIL6LvMOZDJ1VDzMOf4P2piE5q1GMV1Bfxy0yPU60ytdLzC2qvv3PO7hE596fvP51McQUtXN8qTVAGGLClSiXBMqd9Ts1TqW35IAy4nHyzPtYtUW9riMYBFlKWulOjSsyq3S1MytNQ= +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/example.org-SOA-dnssec python-dnslib-0.9.10/dnslib/test/example.org-SOA-dnssec --- python-dnslib-0.9.7+hg20170303/dnslib/test/example.org-SOA-dnssec 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/example.org-SOA-dnssec 2019-03-23 19:07:23.000000000 +0000 @@ -0,0 +1,23 @@ +;; Sending: +;; QUERY: 448401200001000000000001076578616d706c65036f726700000600010000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17540 +;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;example.org. IN SOA +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + +;; Got answer: +;; RESPONSE: 448481800001000200000001076578616d706c65036f72670000060001c00c000600010000098c002a03736e7303646e73056963616e6ec014036e6f63c02d7849f56900001c2000000e100012750000000e10c00c002e00010000098c009f0006080200000e105cabcb065c90978c6c61076578616d706c65036f726700319c0f8317c42e880b3bbfc3a317683f181b58ee223a3b8c446af88f9d8f9432eb8d66fbf9b062b9c7a30b6a413f997953454191487ffe1c98ac1b5730ac538f41a549db8809dbb442665bc5419c4c9b1b2f450f4e09cdcdb93c25589be2a4967ff4e4fd47216fb61b61529f45a27f21a066f4a1492aba72aeeeb7b952af3d550000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17540 +;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;example.org. IN SOA +;; ANSWER SECTION: +example.org. 2444 IN SOA sns.dns.icann.org. noc.dns.icann.org. 2018112873 7200 3600 1209600 3600 +example.org. 2444 IN RRSIG SOA 8 2 3600 20190408222822 20190319071732 27745 example.org. MZwPgxfELogLO7/DoxdoPxgbWO4iOjuMRGr4j52PlDLrjWb7+bBiucejC2pBP5l5U0VBkUh//hyYrBtXMKxTj0GlSduICdu0QmZbxUGcTJsbL0UPTgnNzbk8JVib4qSWf/Tk/Uchb7YbYVKfRaJ/IaBm9KFJKrpyru63uVKvPVU= +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/facebook.com-AAAA python-dnslib-0.9.10/dnslib/test/facebook.com-AAAA --- python-dnslib-0.9.7+hg20170303/dnslib/test/facebook.com-AAAA 2017-03-01 17:38:14.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/facebook.com-AAAA 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -;; Sending: -;; QUERY: 520a010000010000000000000866616365626f6f6b03636f6d00001c0001 -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21002 -;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 -;; QUESTION SECTION: -;facebook.com. IN AAAA - -;; Got answer: -;; RESPONSE: 520a818000010001000000000866616365626f6f6b03636f6d00001c0001c00c001c00010000022100102a0328802110df07faceb00c00000001 -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21002 -;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 -;; QUESTION SECTION: -;facebook.com. IN AAAA -;; ANSWER SECTION: -facebook.com. 545 IN AAAA 2a03:2880:2110:df07:face:b00c:0:1 - diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/google.com-A python-dnslib-0.9.10/dnslib/test/google.com-A --- python-dnslib-0.9.7+hg20170303/dnslib/test/google.com-A 2017-03-01 17:38:14.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/google.com-A 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -;; Sending: -;; QUERY: e21b0100000100000000000006676f6f676c6503636f6d0000010001 -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57883 -;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 -;; QUESTION SECTION: -;google.com. IN A - -;; Got answer: -;; RESPONSE: e21b8180000100100000000006676f6f676c6503636f6d0000010001c00c000100010000004e00043efca9b7c00c000100010000004e00043efca9a7c00c000100010000004e00043efca9b1c00c000100010000004e00043efca9b6c00c000100010000004e00043efca99dc00c000100010000004e00043efca9a2c00c000100010000004e00043efca9a8c00c000100010000004e00043efca9acc00c000100010000004e00043efca9adc00c000100010000004e00043efca999c00c000100010000004e00043efca99ec00c000100010000004e00043efca998c00c000100010000004e00043efca994c00c000100010000004e00043efca9bbc00c000100010000004e00043efca9a3c00c000100010000004e00043efca9b2 -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57883 -;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 0 -;; QUESTION SECTION: -;google.com. IN A -;; ANSWER SECTION: -google.com. 78 IN A 62.252.169.183 -google.com. 78 IN A 62.252.169.167 -google.com. 78 IN A 62.252.169.177 -google.com. 78 IN A 62.252.169.182 -google.com. 78 IN A 62.252.169.157 -google.com. 78 IN A 62.252.169.162 -google.com. 78 IN A 62.252.169.168 -google.com. 78 IN A 62.252.169.172 -google.com. 78 IN A 62.252.169.173 -google.com. 78 IN A 62.252.169.153 -google.com. 78 IN A 62.252.169.158 -google.com. 78 IN A 62.252.169.152 -google.com. 78 IN A 62.252.169.148 -google.com. 78 IN A 62.252.169.187 -google.com. 78 IN A 62.252.169.163 -google.com. 78 IN A 62.252.169.178 - diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/google.com-AAAA python-dnslib-0.9.10/dnslib/test/google.com-AAAA --- python-dnslib-0.9.7+hg20170303/dnslib/test/google.com-AAAA 2017-03-01 17:38:14.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/google.com-AAAA 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -;; Sending: -;; QUERY: 21590100000100000000000006676f6f676c6503636f6d00001c0001 -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8537 -;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 -;; QUESTION SECTION: -;google.com. IN AAAA - -;; Got answer: -;; RESPONSE: 21598180000100010000000006676f6f676c6503636f6d00001c0001c00c001c00010000009100102a001450400908050000000000001000 -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8537 -;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 -;; QUESTION SECTION: -;google.com. IN AAAA -;; ANSWER SECTION: -google.com. 145 IN AAAA 2a00:1450:4009:805::1000 - diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/google.com-ANY python-dnslib-0.9.10/dnslib/test/google.com-ANY --- python-dnslib-0.9.7+hg20170303/dnslib/test/google.com-ANY 2017-03-01 17:38:14.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/google.com-ANY 1970-01-01 00:00:00.000000000 +0000 @@ -1,29 +0,0 @@ -;; Sending: -;; QUERY: 27e40100000100000000000006676f6f676c6503636f6d0000ff0001 -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10212 -;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 -;; QUESTION SECTION: -;google.com. IN ANY - -;; Got answer: -;; RESPONSE: 27e481800001000e0000000006676f6f676c6503636f6d0000ff0001c00c000100010000012b0004d83ad54ec00c001c00010000012b00102a0014504009080e000000000000200ec00c000f0001000002570011001e04616c7432056173706d78016cc00cc00c000600010000003b0026036e7331c00c09646e732d61646d696ec00c089e16c70000038400000384000007080000003cc00c010100010001517f00130005697373756573796d616e7465632e636f6dc00c0010000100000e0f002423763d7370663120696e636c7564653a5f7370662e676f6f676c652e636f6d207e616c6cc00c000f0001000002570004000ac05bc00c000200010001517f0002c071c00c000200010001517f0006036e7332c00cc00c000f0001000002570009003204616c7434c05bc00c000200010001517f0006036e7333c00cc00c000f0001000002570009002804616c7433c05bc00c000f0001000002570009001404616c7431c05bc00c000200010001517f0006036e7334c00c -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10212 -;; flags: qr rd ra; QUERY: 1, ANSWER: 14, AUTHORITY: 0, ADDITIONAL: 0 -;; QUESTION SECTION: -;google.com. IN ANY -;; ANSWER SECTION: -google.com. 299 IN A 216.58.213.78 -google.com. 299 IN AAAA 2a00:1450:4009:80e::200e -google.com. 599 IN MX 30 alt2.aspmx.l.google.com. -google.com. 59 IN SOA ns1.google.com. dns-admin.google.com. 144578247 900 900 1800 60 -google.com. 86399 IN CAA 0 issue "symantec.com" -google.com. 3599 IN TXT "v=spf1 include:_spf.google.com ~all" -google.com. 599 IN MX 10 aspmx.l.google.com. -google.com. 86399 IN NS ns1.google.com. -google.com. 86399 IN NS ns2.google.com. -google.com. 599 IN MX 50 alt4.aspmx.l.google.com. -google.com. 86399 IN NS ns3.google.com. -google.com. 599 IN MX 40 alt3.aspmx.l.google.com. -google.com. 599 IN MX 20 alt1.aspmx.l.google.com. -google.com. 86399 IN NS ns4.google.com. - diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/google.com-MX python-dnslib-0.9.10/dnslib/test/google.com-MX --- python-dnslib-0.9.7+hg20170303/dnslib/test/google.com-MX 2017-03-01 17:38:14.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/google.com-MX 2019-03-23 19:25:37.000000000 +0000 @@ -1,20 +1,20 @@ ;; Sending: -;; QUERY: c1e20100000100000000000006676f6f676c6503636f6d00000f0001 -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49634 +;; QUERY: 71640100000100000000000006676f6f676c6503636f6d00000f0001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29028 ;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;google.com. IN MX ;; Got answer: -;; RESPONSE: c1e28180000100050000000006676f6f676c6503636f6d00000f0001c00c000f0001000001fa0011001404616c7431056173706d78016cc00cc00c000f0001000001fa0009002804616c7433c02fc00c000f0001000001fa0009003204616c7434c02fc00c000f0001000001fa0009001e04616c7432c02fc00c000f0001000001fa0004000ac02f -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49634 +;; RESPONSE: 71648180000100050000000006676f6f676c6503636f6d00000f0001c00c000f0001000001aa0011001404616c7431056173706d78016cc00cc00c000f0001000001aa0009001e04616c7432c02fc00c000f0001000001aa0009002804616c7433c02fc00c000f0001000001aa0009003204616c7434c02fc00c000f0001000001aa0004000ac02f +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29028 ;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;google.com. IN MX ;; ANSWER SECTION: -google.com. 506 IN MX 20 alt1.aspmx.l.google.com. -google.com. 506 IN MX 40 alt3.aspmx.l.google.com. -google.com. 506 IN MX 50 alt4.aspmx.l.google.com. -google.com. 506 IN MX 30 alt2.aspmx.l.google.com. -google.com. 506 IN MX 10 aspmx.l.google.com. +google.com. 426 IN MX 20 alt1.aspmx.l.google.com. +google.com. 426 IN MX 30 alt2.aspmx.l.google.com. +google.com. 426 IN MX 40 alt3.aspmx.l.google.com. +google.com. 426 IN MX 50 alt4.aspmx.l.google.com. +google.com. 426 IN MX 10 aspmx.l.google.com. diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/google.com-NS python-dnslib-0.9.10/dnslib/test/google.com-NS --- python-dnslib-0.9.7+hg20170303/dnslib/test/google.com-NS 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/google.com-NS 2019-03-23 19:25:37.000000000 +0000 @@ -0,0 +1,19 @@ +;; Sending: +;; QUERY: b9440100000100000000000006676f6f676c6503636f6d0000020001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47428 +;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;google.com. IN NS + +;; Got answer: +;; RESPONSE: b9448180000100040000000006676f6f676c6503636f6d0000020001c00c0002000100001be80006036e7331c00cc00c0002000100001be80006036e7332c00cc00c0002000100001be80006036e7333c00cc00c0002000100001be80006036e7334c00c +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47428 +;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;google.com. IN NS +;; ANSWER SECTION: +google.com. 7144 IN NS ns1.google.com. +google.com. 7144 IN NS ns2.google.com. +google.com. 7144 IN NS ns3.google.com. +google.com. 7144 IN NS ns4.google.com. + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/google.com-SOA python-dnslib-0.9.10/dnslib/test/google.com-SOA --- python-dnslib-0.9.7+hg20170303/dnslib/test/google.com-SOA 2017-03-01 17:38:14.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/google.com-SOA 2019-03-23 19:25:37.000000000 +0000 @@ -1,16 +1,16 @@ ;; Sending: -;; QUERY: 4cce0100000100000000000006676f6f676c6503636f6d0000060001 -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19662 +;; QUERY: 52580100000100000000000006676f6f676c6503636f6d0000060001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21080 ;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;google.com. IN SOA ;; Got answer: -;; RESPONSE: 4cce8180000100010000000006676f6f676c6503636f6d0000060001c00c000600010000545f0026036e7331c00c09646e732d61646d696ec00c780b88a800001c2000000708001275000000012c -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19662 +;; RESPONSE: 52588180000100010000000006676f6f676c6503636f6d0000060001c00c00060001000000350026036e7331c00c09646e732d61646d696ec00c0e395bbd0000038400000384000007080000003c +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21080 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;google.com. IN SOA ;; ANSWER SECTION: -google.com. 21599 IN SOA ns1.google.com. dns-admin.google.com. 2014021800 7200 1800 1209600 300 +google.com. 53 IN SOA ns1.google.com. dns-admin.google.com. 238640061 900 900 1800 60 diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/google.com-TXT python-dnslib-0.9.10/dnslib/test/google.com-TXT --- python-dnslib-0.9.7+hg20170303/dnslib/test/google.com-TXT 2017-03-01 17:38:14.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/google.com-TXT 2019-03-23 19:25:38.000000000 +0000 @@ -1,16 +1,19 @@ ;; Sending: -;; QUERY: 0cbe0100000100000000000006676f6f676c6503636f6d0000100001 -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3262 +;; QUERY: b39b0100000100000000000006676f6f676c6503636f6d0000100001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45979 ;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;google.com. IN TXT ;; Got answer: -;; RESPONSE: 0cbe8180000100010000000006676f6f676c6503636f6d0000100001c00c0010000100000e0f004c4b763d7370663120696e636c7564653a5f7370662e676f6f676c652e636f6d206970343a3231362e37332e39332e37302f3331206970343a3231362e37332e39332e37322f3331207e616c6c -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3262 -;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 +;; RESPONSE: b39b8180000100040000000006676f6f676c6503636f6d0000100001c00c0010000100000810002423763d7370663120696e636c7564653a5f7370662e676f6f676c652e636f6d207e616c6cc00c0010000100000810002e2d646f63757369676e3d30353935383438382d343735322d346566322d393565622d616137626138613362643065c00c0010000100000810003c3b66616365626f6f6b2d646f6d61696e2d766572696669636174696f6e3d3232726d3535316375346b3061623062787377353336746c647334683935c00c0010000100000810004140676c6f62616c7369676e2d736d696d652d64763d434459582b584648557732776d6c362f4762382b353942734833314b7a55723663316c32425076714b58383d +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45979 +;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;google.com. IN TXT ;; ANSWER SECTION: -google.com. 3599 IN TXT "v=spf1 include:_spf.google.com ip4:216.73.93.70/31 ip4:216.73.93.72/31 ~all" +google.com. 2064 IN TXT "v=spf1 include:_spf.google.com ~all" +google.com. 2064 IN TXT "docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e" +google.com. 2064 IN TXT "facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95" +google.com. 2064 IN TXT "globalsign-smime-dv=CDYX+XFHUw2wml6/Gb8+59BsH31KzUr6c1l2BPvqKX8=" diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/he.net-MX python-dnslib-0.9.10/dnslib/test/he.net-MX --- python-dnslib-0.9.7+hg20170303/dnslib/test/he.net-MX 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/he.net-MX 2019-03-23 19:25:37.000000000 +0000 @@ -0,0 +1,16 @@ +;; Sending: +;; QUERY: 5a9101000001000000000000026865036e657400000f0001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23185 +;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;he.net. IN MX + +;; Got answer: +;; RESPONSE: 5a9181800001000100000000026865036e657400000f0001c00c000f00010001515400040001c00c +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23185 +;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;he.net. IN MX +;; ANSWER SECTION: +he.net. 86356 IN MX 1 he.net. + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/he.net-NS python-dnslib-0.9.10/dnslib/test/he.net-NS --- python-dnslib-0.9.7+hg20170303/dnslib/test/he.net-NS 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/he.net-NS 2019-03-23 19:25:37.000000000 +0000 @@ -0,0 +1,20 @@ +;; Sending: +;; QUERY: fec501000001000000000000026865036e65740000020001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65221 +;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;he.net. IN NS + +;; Got answer: +;; RESPONSE: fec581800001000500000000026865036e65740000020001c00c00020001000151540006036e7332c00cc00c00020001000151540006036e7333c00cc00c00020001000151540006036e7334c00cc00c00020001000151540006036e7335c00cc00c00020001000151540006036e7331c00c +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65221 +;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;he.net. IN NS +;; ANSWER SECTION: +he.net. 86356 IN NS ns2.he.net. +he.net. 86356 IN NS ns3.he.net. +he.net. 86356 IN NS ns4.he.net. +he.net. 86356 IN NS ns5.he.net. +he.net. 86356 IN NS ns1.he.net. + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/he.net-SOA python-dnslib-0.9.10/dnslib/test/he.net-SOA --- python-dnslib-0.9.7+hg20170303/dnslib/test/he.net-SOA 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/he.net-SOA 2019-03-23 19:25:37.000000000 +0000 @@ -0,0 +1,16 @@ +;; Sending: +;; QUERY: 3af801000001000000000000026865036e65740000060001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15096 +;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;he.net. IN SOA + +;; Got answer: +;; RESPONSE: 3af881800001000100000000026865036e65740000060001c00c00060001000014040027036e7331c00c0a686f73746d6173746572c00c0c08cc7e00002a300000070800093a8000015180 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15096 +;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;he.net. IN SOA +;; ANSWER SECTION: +he.net. 5124 IN SOA ns1.he.net. hostmaster.he.net. 201903230 10800 1800 604800 86400 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/he.net-TXT python-dnslib-0.9.10/dnslib/test/he.net-TXT --- python-dnslib-0.9.7+hg20170303/dnslib/test/he.net-TXT 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/he.net-TXT 2019-03-23 19:25:37.000000000 +0000 @@ -0,0 +1,16 @@ +;; Sending: +;; QUERY: 3e9401000001000000000000026865036e65740000100001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16020 +;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;he.net. IN TXT + +;; Got answer: +;; RESPONSE: 3e9481800001000100000000026865036e65740000100001c00c001000010001515400dbda763d73706631206d78206120696e636c7564653a5f70726566697865732e68652e6e657420613a6d61696c686f73742e6c696768746e696e672e6e657420613a61646d696e2e68652e6e657420613a636f72702e68652e6e657420613a7469636b6574732e68652e6e657420613a61627573652e68652e6e657420613a697076362e68652e6e657420613a74756e6e656c62726f6b65722e6e6574206970343a36342e37312e3133392e39362f3237206970343a3231362e3231382e3138362e32206970363a323030313a3437303a303a3a2f3438207e616c6c +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16020 +;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;he.net. IN TXT +;; ANSWER SECTION: +he.net. 86356 IN TXT "v=spf1 mx a include:_prefixes.he.net a:mailhost.lightning.net a:admin.he.net a:corp.he.net a:tickets.he.net a:abuse.he.net a:ipv6.he.net a:tunnelbroker.net ip4:64.71.139.96/27 ip4:216.218.186.2 ip6:2001:470:0::/48 ~all" + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/iana.org-A python-dnslib-0.9.10/dnslib/test/iana.org-A --- python-dnslib-0.9.7+hg20170303/dnslib/test/iana.org-A 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/iana.org-A 2019-03-24 00:36:02.000000000 +0000 @@ -0,0 +1,16 @@ +;; Sending: +;; QUERY: a370010000010000000000000469616e61036f72670000010001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41840 +;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;iana.org. IN A + +;; Got answer: +;; RESPONSE: a370818000010001000000000469616e61036f72670000010001c00c000100010000015e0004c0002b08 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41840 +;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;iana.org. IN A +;; ANSWER SECTION: +iana.org. 350 IN A 192.0.43.8 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/iana.org-AAAA python-dnslib-0.9.10/dnslib/test/iana.org-AAAA --- python-dnslib-0.9.7+hg20170303/dnslib/test/iana.org-AAAA 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/iana.org-AAAA 2019-03-24 00:36:02.000000000 +0000 @@ -0,0 +1,16 @@ +;; Sending: +;; QUERY: 4f6e010000010000000000000469616e61036f726700001c0001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20334 +;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;iana.org. IN AAAA + +;; Got answer: +;; RESPONSE: 4f6e818000010001000000000469616e61036f726700001c0001c00c001c00010000015e001020010500008802000000000000000008 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20334 +;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;iana.org. IN AAAA +;; ANSWER SECTION: +iana.org. 350 IN AAAA 2001:500:88:200::8 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/iana.org-AAAA-dnssec python-dnslib-0.9.10/dnslib/test/iana.org-AAAA-dnssec --- python-dnslib-0.9.7+hg20170303/dnslib/test/iana.org-AAAA-dnssec 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/iana.org-AAAA-dnssec 2019-03-24 00:35:53.000000000 +0000 @@ -0,0 +1,23 @@ +;; Sending: +;; QUERY: 2729012000010000000000010469616e61036f726700001c00010000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10025 +;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;iana.org. IN AAAA +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + +;; Got answer: +;; RESPONSE: 2729818000010002000000010469616e61036f726700001c0001c00c001c000100000167001020010500008802000000000000000008c00c002e000100000167009c001c080200000e105cafbaf35c943795378f0469616e61036f72670029078d90e4ad37fced7d826c53c1b1c70fe166c90f100e9349b1d0d500e6a7cba4dcd840f56f6523f869feae6121dce49ab2f3154a0dcf850a5d5553aaaf27c338548f588aeca94f6ecd27ef4b01500b580f117ac34c0a51dbda97db3509d3ee1fa7ee4beec46f2de5a95dd0abf914ceef8a3ac7ed302e6b35399502b0c123290000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10025 +;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;iana.org. IN AAAA +;; ANSWER SECTION: +iana.org. 359 IN AAAA 2001:500:88:200::8 +iana.org. 359 IN RRSIG AAAA 8 2 3600 20190411220851 20190322011709 14223 iana.org. KQeNkOStN/ztfYJsU8Gxxw/hZskPEA6TSbHQ1QDmp8uk3NhA9W9lI/hp/q5hIdzkmrLzFUoNz4UKXVVTqq8nwzhUj1iK7KlPbs0n70sBUAtYDxF6w0wKUdval9s1CdPuH6fuS+7Eby3lqV3Qq/kUzu+KOsftMC5rNTmVArDBIyk= +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/iana.org-A-dnssec python-dnslib-0.9.10/dnslib/test/iana.org-A-dnssec --- python-dnslib-0.9.7+hg20170303/dnslib/test/iana.org-A-dnssec 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/iana.org-A-dnssec 2019-03-24 00:35:53.000000000 +0000 @@ -0,0 +1,23 @@ +;; Sending: +;; QUERY: db75012000010000000000010469616e61036f726700000100010000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56181 +;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;iana.org. IN A +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + +;; Got answer: +;; RESPONSE: db75818000010002000000010469616e61036f72670000010001c00c00010001000001670004c0002b08c00c002e000100000167009c0001080200000e105cb22ebc5c9615b5378f0469616e61036f72670050946b7161b4d9b1f6b7a515e53cbce090685d93bced244b088e133bbda214447cc6e3b953189235316e299ae88242cee234f4d9809ffa764115da6bb9895f65d55d3d014c6c520b8cc1f9fbe12cc896a21f1c70a53561b623073b81da5fee6990c2a7c83540bb0544f0c45b971051d7abcf5d5c009b76fb8c1c48101ac76a1d0000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56181 +;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;iana.org. IN A +;; ANSWER SECTION: +iana.org. 359 IN A 192.0.43.8 +iana.org. 359 IN RRSIG A 8 2 3600 20190413184724 20190323111709 14223 iana.org. UJRrcWG02bH2t6UV5Ty84JBoXZO87SRLCI4TO72iFER8xuO5UxiSNTFuKZrogkLO4jT02YCf+nZBFdpruYlfZdVdPQFMbFILjMH5++EsyJaiHxxwpTVhtiMHO4HaX+5pkMKnyDVAuwVE8MRblxBR16vPXVwAm3b7jBxIEBrHah0= +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/iana.org-ANY python-dnslib-0.9.10/dnslib/test/iana.org-ANY --- python-dnslib-0.9.7+hg20170303/dnslib/test/iana.org-ANY 2017-03-01 17:38:14.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/iana.org-ANY 1970-01-01 00:00:00.000000000 +0000 @@ -1,43 +0,0 @@ -;; Sending: -;; QUERY: 4c14010000010000000000000469616e61036f72670000ff0001 -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19476 -;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 -;; QUESTION SECTION: -;iana.org. IN ANY - -;; Got answer: -;; RESPONSE: 4c1481800001001a000000000469616e61036f72670000ff0001c00c0006000100000e06002a03736e7303646e73056963616e6ec011036e6f63c02a77fd866400001c2000000e100012750000000e10c00c000100010000024e0004c0002b08c00c002e00010000024e009c0001080200000258536b07db53615c818b240469616e61036f72670013c92ac5ea251d2c7f1de4cbda47fffb902b191c74eb46fc61fdebba63721c54fcfe4214937e8aea1039ed9e0f47b5f4b0423eb5b20b1162ab3d9a3a3c3637b2680ae59cfdb32b7ab704007db77fe3bdaf5cee3619cc91d40f29794ab705c80404951f2ccad14578112c16394125c351daf561e552aa12b683a1d44bce62c809c00c00020001000054560005026e73c02ec00c0002000100005456001401620c69616e612d73657276657273036e657400c00c000200010000545600040163c127c00c000200010000545600040161c127c00c002e000100005456009c0002080200015180536b12b653615c818b240469616e61036f72670040b91e127f60ba357111cf7565944d00bb34d7f309c1555753695d85e8984765d8e08c4a0957ae75ee7fb4255241dd2cbefef81ee7e6d0b7dfb4dce78ec8fad19147841879e28d6042fd2edba03cfc4d392346852bb95b83795859ea7f677e593d865edd8c2f14fe2c3a7e4af2e40ee74f6d6e3936a24b944c64569cf538f067c00c002e000100000e06009c0006080200000e10536ac25f53615c818b240469616e61036f726700b3c22997425048c834d360c039c4a0e58cb83797fae52ae3924d86062b8e95f153eaf17d5192b425f21eee59df05c5e094e0bc75daca09f23e95bc696ae699994542f10bfc55282594cec722641e2aa79c4212acfe29d0890df018b954359da66e8dee44a0ae5ce993756da553de94ab5b6472b105d8b1a88c958cdea3931095c00c000f00010000024e000d000a08706563686f726134c02ec00c000f00010000024e000d000a08706563686f726131c02ec00c000f00010000024e000d000a08706563686f726135c02ec00c000f00010000024e000d000a08706563686f726138c02ec00c000f00010000024e000d000a08706563686f726137c02ec00c000f00010000024e000d000a08706563686f726133c02ec00c002e00010000024e009c000f080200000258536b28bd53615c818b240469616e61036f7267008ed9bd529e6b96039bda14a45d2c68016a95200319c80ad3c9a4e887240b58a13e89de16113559f2ef09b0fc5b3c152fd0fd2049780cd51405f4a215ed46e7adfdeb3aa37277096925923a53a9e687230e803d95c82c6fc0190a480b5fb388e92cab300cccb1b29294189137113a9c12279dfbc4627b216ce1e459864672c3adc00c00100001000000320033322449643a2069616e612e6f7267203139333920323031332d31302d32322031383a32373a32395a2064636c6f73736f6e2024c00c002e000100000032009c001008020000003c536b3fa153615c818b240469616e61036f72670071c6b10b7cf9a70a4422cda6dedf3929cf9356bbb7126c19c5b9def7f67a423388b76c7480489c84ec77f22782d4436e6261d2d5daf8bf7a1d45a0e59250ef1d8c3d2b385e449c3b20b975c69918e034b2dbeadb2a335c3c17334a61ed92f47149fea579d615874f91ba64a211240a437e42c0654c6dadc6a5eca305be869443c00c001c00010000024e001020010500008802000000000000000008c00c002e00010000024e009c001c080200000258536b08a853615c818b240469616e61036f72670046f728d39162cb5a566c3b1354ceaf512686603dfcd465340ae9ada9fdac5724f401133da7d2268a0ea61fa39acad1e0e745679ba11d20097816746ae2c688e9a63fcd945dfc00ab30ebba68adee61938927f06a9562d09cc6a35cda4824fd5260392d31fd5d1980425377281c1e3eb8dc7d73f6cdb693fc5ae265327994492ec00c0030000100000e0601080101030803010001bed3b4d1476380436e2fdfb47da3d4ec01fbdd7587cf082ee437e7f02aca7a030e5d19053fa19f78ac2e20831c37bc1589955d47ddbe7b64271d58d1a1cff66a213c7d6c8dbc680cf920eb92a5a17f8a42cdf8d2c9eed78a9f4191ac6ba9f20d090b5fd3a7dc7e94f562dce17d4c07ef6a2bd66b7d1d90dbd432ef4e290284f8d9b44971c17466e68090685b41e404d86b93c0fcd777aae178bc1e42591963777b44e7bdb0b56734bc5333422c6e4182fadb6f7eb8417c1fc8f55a840f9bb4d810f7535112cad19ee52610ebc3f1378cf5415db82507e065ef6180edf1f3ea16e908a150a8e119c5316dee99be6edf2caabfb8023a5852c7f178940d6b3cfb7dc00c0030000100000e0600880100030803010001d7c8cde9f019a8ae616295ec1c83bef6ff35c9b127d08c0e048f70582d6513cf1427bc7c460561afaf976ce6afb0df1aaf2df3099f3da6973df81297e458176a555ce35192b8a1ff7e88f462fbe6f92bef31559bad686a1c59647f8c6803a88a4c5978c8c0806e13e014cc7ec93ffa72d35f55d5c70c675897ed07d29372ddf3c00c0030000100000e0601080101030803010001c1fb8508eeea11f7fe747aba37a397f46a3e174bad479d4e43292d99c1f22c7bb2d7d0add86b50a966f673950e35b4dba3fe3c49cd2cf45c5c32fcb914e797274b95e5501b31d5662f53c7339bbf18289715533e849508eccedfd9f637a6a695b93d0e1e16a5a4af691a7fa587f7ffed83678a37ded44b3c4549c87026541c68b20dcf5ef51e22481586374f72b031a3d562d7668b3233536acd78285dd228384e219e5b6e60f333bd024b613df9b8ecaa88b8ae977f47d2226d7e9090ff89d37c8deb8386910381bc1d546ba8019c44e866cd06ce8ec297822320a2a212225d60622ee7404d65c67d375787bd6b363421ac6cd42d9141c7687de7c5761663a9c00c002e000100000e06011c0030080200000e10536b3d9353615c811a4a0469616e61036f72670023bf2985b868a1e23b9b5e80e38946fddf76f53fbe7f1a06a02eaedd5d116e9e1be716be8afad0d3f886387966e0b7511f1be581fd2c8aba98c5930716ba2eb7d8cec2462ff035acd602c5bf1bfadb215319c787d3a4468af21bbddb63c190fbe4aeed5a9cac17e4e503edabc99e18e6bb47963b5a8eea76e0ce92997fec58cf43e9309ebbd8de026ce122bb0215c96c4d0b5ddf3bab90ed7fbacc29288d103c30f9cb58af015dc21bd5cdc05ef4c1251e504c97c75b1342eff630e37d88331c89a1b71c15207dc284becca44818fc00dedafc4092cb8b90ce3859ee38c2471dbd7818d18a147f67ed7d77f8803766578fb36dc720dbb483174d05191166d871c00c002f000100000e06001c036e733104617574680469616e61036f726700000762018008000380c00c002e000100000e06009c002f080200000e10536b13ae53615c818b240469616e61036f726700a70ee185f024c5efb766a5cfb42b19532f782c7f49ca8415f978d380d60bba97710948dccebc32b6464ff588d00f3539e1778763aa0f218cb48ed64c8671fe419f9a03f36199c7847da11fb7bb0a52fef7f612275eee6d0977fc540d30e99358c7ffe9d69adea8d29895328e39c6b5f1a65801384693e0b0e2b346d35b18e464 -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19476 -;; flags: qr rd ra; QUERY: 1, ANSWER: 26, AUTHORITY: 0, ADDITIONAL: 0 -;; QUESTION SECTION: -;iana.org. IN ANY -;; ANSWER SECTION: -iana.org. 3590 IN SOA sns.dns.icann.org. noc.dns.icann.org. 2013103716 7200 3600 1209600 3600 -iana.org. 590 IN A 192.0.43.8 -iana.org. 590 IN RRSIG A 8 2 600 20140508042811 20140430202641 35620 iana.org. E8kqxeolHSx/HeTL2kf/+5ArGRx060b8Yf3rumNyHFT8/kIUk36K6hA57Z4PR7X0sEI+tbILEWKrPZo6PDY3smgK5Zz9syt6twQAfbd/472vXO42GcyR1A8peUq3BcgEBJUfLMrRRXgRLBY5QSXDUdr1YeVSqhK2g6HUS85iyAk= -iana.org. 21590 IN NS ns.icann.org. -iana.org. 21590 IN NS b.iana-servers.net. -iana.org. 21590 IN NS c.iana-servers.net. -iana.org. 21590 IN NS a.iana-servers.net. -iana.org. 21590 IN RRSIG NS 8 2 86400 20140508051430 20140430202641 35620 iana.org. QLkeEn9gujVxEc91ZZRNALs01/MJwVVXU2ldheiYR2XY4IxKCVeude5/tCVSQd0svv74Hufm0LfftNznjsj60ZFHhBh54o1gQv0u26A8/E05I0aFK7lbg3lYWep/Z35ZPYZe3YwvFP4sOn5K8uQO509tbjk2okuUTGRWnPU48Gc= -iana.org. 3590 IN RRSIG SOA 8 2 3600 20140507233143 20140430202641 35620 iana.org. s8Ipl0JQSMg002DAOcSg5Yy4N5f65Srjkk2GBiuOlfFT6vF9UZK0JfIe7lnfBcXglOC8ddrKCfI+lbxpauaZmUVC8Qv8VSgllM7HImQeKqecQhKs/inQiQ3wGLlUNZ2mbo3uRKCuXOmTdW2lU96Uq1tkcrEF2LGojJWM3qOTEJU= -iana.org. 590 IN MX 10 pechora4.icann.org. -iana.org. 590 IN MX 10 pechora1.icann.org. -iana.org. 590 IN MX 10 pechora5.icann.org. -iana.org. 590 IN MX 10 pechora8.icann.org. -iana.org. 590 IN MX 10 pechora7.icann.org. -iana.org. 590 IN MX 10 pechora3.icann.org. -iana.org. 590 IN RRSIG MX 8 2 600 20140508064829 20140430202641 35620 iana.org. jtm9Up5rlgOb2hSkXSxoAWqVIAMZyArTyaTohyQLWKE+id4WETVZ8u8JsPxbPBUv0P0gSXgM1RQF9KIV7Ubnrf3rOqNydwlpJZI6U6nmhyMOgD2VyCxvwBkKSAtfs4jpLKswDMyxspKUGJE3ETqcEied+8RieyFs4eRZhkZyw60= -iana.org. 50 IN TXT "$Id: iana.org 1939 2013-10-22 18:27:29Z dclosson $" -iana.org. 50 IN RRSIG TXT 8 2 60 20140508082609 20140430202641 35620 iana.org. ccaxC3z5pwpEIs2m3t85Kc+TVru3EmwZxbne9/Z6QjOIt2x0gEichOx38ieC1ENuYmHS1dr4v3odRaDlklDvHYw9KzheRJw7ILl1xpkY4DSy2+rbKjNcPBczSmHtkvRxSf6ledYVh0+RumSiESQKQ35CwGVMba3GpeyjBb6GlEM= -iana.org. 590 IN AAAA 2001:500:88:200::8 -iana.org. 590 IN RRSIG AAAA 8 2 600 20140508043136 20140430202641 35620 iana.org. Rvco05Fiy1pWbDsTVM6vUSaGYD381GU0Cumtqf2sVyT0ARM9p9Imig6mH6OaytHg50Vnm6EdIAl4FnRq4saI6aY/zZRd/ACrMOu6aK3uYZOJJ/BqlWLQnMajXNpIJP1SYDktMf1dGYBCU3coHB4+uNx9c/bNtpP8WuJlMnmUSS4= -iana.org. 3590 IN DNSKEY 257 3 8 AwEAAb7TtNFHY4BDbi/ftH2j1OwB+911h88ILuQ35/AqynoDDl0ZBT+hn3isLiCDHDe8FYmVXUfdvntkJx1Y0aHP9mohPH1sjbxoDPkg65KloX+KQs340snu14qfQZGsa6nyDQkLX9On3H6U9WLc4X1MB+9qK9ZrfR2Q29Qy704pAoT42bRJccF0ZuaAkGhbQeQE2GuTwPzXd6rheLweQlkZY3d7ROe9sLVnNLxTM0IsbkGC+ttvfrhBfB/I9VqED5u02BD3U1ESytGe5SYQ68PxN4z1QV24JQfgZe9hgO3x8+oW6QihUKjhGcUxbe6Zvm7fLKq/uAI6WFLH8XiUDWs8+30= -iana.org. 3590 IN DNSKEY 256 3 8 AwEAAdfIzenwGaiuYWKV7ByDvvb/NcmxJ9CMDgSPcFgtZRPPFCe8fEYFYa+vl2zmr7DfGq8t8wmfPaaXPfgSl+RYF2pVXONRkrih/36I9GL75vkr7zFVm61oahxZZH+MaAOoikxZeMjAgG4T4BTMfsk/+nLTX1XVxwxnWJftB9KTct3z -iana.org. 3590 IN DNSKEY 257 3 8 AwEAAcH7hQju6hH3/nR6ujejl/RqPhdLrUedTkMpLZnB8ix7stfQrdhrUKlm9nOVDjW026P+PEnNLPRcXDL8uRTnlydLleVQGzHVZi9TxzObvxgolxVTPoSVCOzO39n2N6amlbk9Dh4WpaSvaRp/pYf3/+2DZ4o33tRLPEVJyHAmVBxosg3PXvUeIkgVhjdPcrAxo9Vi12aLMjNTas14KF3SKDhOIZ5bbmDzM70CS2E9+bjsqoi4rpd/R9IibX6QkP+J03yN64OGkQOBvB1Ua6gBnEToZs0Gzo7Cl4IjIKKiEiJdYGIu50BNZcZ9N1eHvWs2NCGsbNQtkUHHaH3nxXYWY6k= -iana.org. 3590 IN RRSIG DNSKEY 8 2 3600 20140508081723 20140430202641 6730 iana.org. I78phbhooeI7m16A44lG/d929T++fxoGoC6u3V0Rbp4b5xa+ivrQ0/iGOHlm4LdRHxvlgf0sirqYxZMHFrout9jOwkYv8DWs1gLFvxv62yFTGceH06RGivIbvdtjwZD75K7tWpysF+TlA+2ryZ4Y5rtHljtajup24M6SmX/sWM9D6TCeu9jeAmzhIrsCFclsTQtd3zurkO1/uswpKI0QPDD5y1ivAV3CG9XNwF70wSUeUEyXx1sTQu/2MON9iDMciaG3HBUgfcKEvsykSBj8AN7a/ECSy4uQzjhZ7jjCRx29eBjRihR/Z+19d/iAN2ZXj7NtxyDbtIMXTQUZEWbYcQ== -iana.org. 3590 IN NSEC 036e733104617574680469616e61036f726700000762018008000380 -iana.org. 3590 IN RRSIG NSEC 8 2 3600 20140508051838 20140430202641 35620 iana.org. pw7hhfAkxe+3ZqXPtCsZUy94LH9JyoQV+XjTgNYLupdxCUjczrwytkZP9YjQDzU54XeHY6oPIYy0jtZMhnH+QZ+aA/NhmceEfaEft7sKUv739hInXu5tCXf8VA0w6ZNYx//p1preqNKYlTKOOca18aZYAThGk+Cw4rNG01sY5GQ= - -;;; ERROR: Diff Response differs -;; - iana.org. 3590 IN NSEC 036e733104617574680469616e61036f726700000762018008000380 diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/iana.org-DNSKEY python-dnslib-0.9.10/dnslib/test/iana.org-DNSKEY --- python-dnslib-0.9.7+hg20170303/dnslib/test/iana.org-DNSKEY 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/iana.org-DNSKEY 2019-03-23 19:17:44.000000000 +0000 @@ -0,0 +1,18 @@ +;; Sending: +;; QUERY: 6e2d010000010000000000000469616e61036f72670000300001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28205 +;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;iana.org. IN DNSKEY + +;; Got answer: +;; RESPONSE: 6e2d818000010003000000000469616e61036f72670000300001c00c0030000100000d7f00880100030803010001a8724b4e2d75c3bfdc7c50c533383fc9b3be98b037da00eb373aade8a125583fa4f5e096b710293a1796eb43b98afddcfeeb762835ab163281ad3cec9c0c58bb81425627416581c2d3869a5d08b1c5260a04b66cc6d8c4f8102f4534292b069fd21f634179d0d9868c492a285a77cca90d9a0b35ef43f5b59a34d35f8cb0ad0bc00c0030000100000d7f01080101030803010001ad363bd00c6c56d3a5c0de75eb91b94295f3634604f109b4c6d2f134f9f8fc0e35c312cec96350c4e812882fcfb0df36694a10e8f8676766e8963a2849daa1de10c88e7a6497ecb20c25136af9fa3a2ec1c3bb2b3047a551d062cc7dfbdd3d936540427f123908cd56185836354f9cba7747be7d7179ccd61a67f6036c81e84cf473e98c3c16a5d7a6e34df9a3dbee4be438f1fad77142a9c4bfe63c6145f682fa5681911135eb2deb131949ab472c990600a263f5c928b42e126d6de531eb80958cf5614efc871a781541b64823f08b24392d9a032486c788c05f91cb1c9bbaa0e73f2f6ce35e15ec46060a37d4cc68a9d6a9ecf509e3384a7fc0cbffc116a5c00c0030000100000d7f01080101030803010001bd22d636abc638268ec3803bb21b5ef8707b8c814865a95278e3f522d93a0b846ce63eea1aec2cbe576bd2ca1c38e017fa2fa2fb4e8f8b7d26b297419e9cfe425db5a22419c5b38400a8364ba6db49a7d896b7664d712601243293840f923737a20734200b48dc3caf1bb7737c550e90fa4dfd74f81729af8b2381edf694d7950e354fb3b0fbc89490aebd2d06e8b8aedb0c91e43c8cd4fd1e76bb0bfe4c440c6a8e9b9e5f467b904aafe2f7afbf563bc438bbca5a11cd8fedc7c05d60455134e43da5b536111b858545a6c13d4344e501c292ba86eb1d3866e73f21b30a21edd78027e706298fa07825aa3d0ee35381397ac60db4a32478ea944cd6ba137889 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28205 +;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;iana.org. IN DNSKEY +;; ANSWER SECTION: +iana.org. 3455 IN DNSKEY 256 3 8 AwEAAahyS04tdcO/3HxQxTM4P8mzvpiwN9oA6zc6reihJVg/pPXglrcQKToXlutDuYr93P7rdig1qxYyga087JwMWLuBQlYnQWWBwtOGml0IscUmCgS2bMbYxPgQL0U0KSsGn9IfY0F50NmGjEkqKFp3zKkNmgs170P1tZo001+MsK0L +iana.org. 3455 IN DNSKEY 257 3 8 AwEAAa02O9AMbFbTpcDedeuRuUKV82NGBPEJtMbS8TT5+PwONcMSzsljUMToEogvz7DfNmlKEOj4Z2dm6JY6KEnaod4QyI56ZJfssgwlE2r5+jouwcO7KzBHpVHQYsx9+909k2VAQn8SOQjNVhhYNjVPnLp3R759cXnM1hpn9gNsgehM9HPpjDwWpdem4035o9vuS+Q48frXcUKpxL/mPGFF9oL6VoGRETXrLesTGUmrRyyZBgCiY/XJKLQuEm1t5THrgJWM9WFO/IcaeBVBtkgj8IskOS2aAySGx4jAX5HLHJu6oOc/L2zjXhXsRgYKN9TMaKnWqez1CeM4Sn/Ay//BFqU= +iana.org. 3455 IN DNSKEY 257 3 8 AwEAAb0i1jarxjgmjsOAO7IbXvhwe4yBSGWpUnjj9SLZOguEbOY+6hrsLL5Xa9LKHDjgF/ovovtOj4t9JrKXQZ6c/kJdtaIkGcWzhACoNkum20mn2Ja3Zk1xJgEkMpOED5I3N6IHNCALSNw8rxu3c3xVDpD6Tf10+Bcpr4sjge32lNeVDjVPs7D7yJSQrr0tBui4rtsMkeQ8jNT9Hna7C/5MRAxqjpueX0Z7kEqv4vevv1Y7xDi7yloRzY/tx8BdYEVRNOQ9pbU2ERuFhUWmwT1DROUBwpK6husdOGbnPyGzCiHt14An5wYpj6B4Jao9DuNTgTl6xg20oyR46pRM1roTeIk= + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/iana.org-MX python-dnslib-0.9.10/dnslib/test/iana.org-MX --- python-dnslib-0.9.7+hg20170303/dnslib/test/iana.org-MX 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/iana.org-MX 2019-03-24 00:36:02.000000000 +0000 @@ -0,0 +1,19 @@ +;; Sending: +;; QUERY: 4f99010000010000000000000469616e61036f726700000f0001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20377 +;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;iana.org. IN MX + +;; Got answer: +;; RESPONSE: 4f99818000010004000000000469616e61036f726700000f0001c00c000f000100000dc60013000a08706563686f726131056963616e6ec011c00c000f000100000dc6000d000a08706563686f726132c031c00c000f000100000dc6000d000a08706563686f726136c031c00c000f000100000dc6000d000a08706563686f726138c031 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20377 +;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;iana.org. IN MX +;; ANSWER SECTION: +iana.org. 3526 IN MX 10 pechora1.icann.org. +iana.org. 3526 IN MX 10 pechora2.icann.org. +iana.org. 3526 IN MX 10 pechora6.icann.org. +iana.org. 3526 IN MX 10 pechora8.icann.org. + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/iana.org-MX-dnssec python-dnslib-0.9.10/dnslib/test/iana.org-MX-dnssec --- python-dnslib-0.9.7+hg20170303/dnslib/test/iana.org-MX-dnssec 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/iana.org-MX-dnssec 2019-03-24 00:35:54.000000000 +0000 @@ -0,0 +1,26 @@ +;; Sending: +;; QUERY: 1519012000010000000000010469616e61036f726700000f00010000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5401 +;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;iana.org. IN MX +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + +;; Got answer: +;; RESPONSE: 1519818000010005000000010469616e61036f726700000f0001c00c000f000100000dce0013000a08706563686f726131056963616e6ec011c00c000f000100000dce000d000a08706563686f726132c031c00c000f000100000dce000d000a08706563686f726136c031c00c000f000100000dce000d000a08706563686f726138c031c00c002e000100000dce009c000f080200000e105cb1cc235c9615b5378f0469616e61036f7267005b401cca3343007304546487c4d1f830169034cf8f3aea3f81536879a776ff109efd86f1b5a6c87d3b467b7e1869cdd6d6d88237c31ae77ec1c357be0870e35f6db2225f3e69b3e26435a5e5a2ae4f91d2b5170688f26bd44ff830f3c7db3b02eb1e2c9401c321cd1972a970787ba8592b7461cfc5846baed116e7d20fd8d2810000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5401 +;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;iana.org. IN MX +;; ANSWER SECTION: +iana.org. 3534 IN MX 10 pechora1.icann.org. +iana.org. 3534 IN MX 10 pechora2.icann.org. +iana.org. 3534 IN MX 10 pechora6.icann.org. +iana.org. 3534 IN MX 10 pechora8.icann.org. +iana.org. 3534 IN RRSIG MX 8 2 3600 20190413114643 20190323111709 14223 iana.org. W0AcyjNDAHMEVGSHxNH4MBaQNM+POuo/gVNoead2/xCe/YbxtabIfTtGe34Yac3W1tiCN8Ma537Bw1e+CHDjX22yIl8+abPiZDWl5aKuT5HStRcGiPJr1E/4MPPH2zsC6x4slAHDIc0ZcqlweHuoWSt0Yc/FhGuu0Rbn0g/Y0oE= +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/iana.org-NS python-dnslib-0.9.10/dnslib/test/iana.org-NS --- python-dnslib-0.9.7+hg20170303/dnslib/test/iana.org-NS 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/iana.org-NS 2019-03-24 00:36:02.000000000 +0000 @@ -0,0 +1,19 @@ +;; Sending: +;; QUERY: f869010000010000000000000469616e61036f72670000020001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63593 +;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;iana.org. IN NS + +;; Got answer: +;; RESPONSE: f869818000010004000000000469616e61036f72670000020001c00c0002000100001baf001401610c69616e612d73657276657273036e657400c00c0002000100001baf00040162c028c00c0002000100001baf00040163c028c00c0002000100001baf000b026e73056963616e6ec011 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63593 +;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;iana.org. IN NS +;; ANSWER SECTION: +iana.org. 7087 IN NS a.iana-servers.net. +iana.org. 7087 IN NS b.iana-servers.net. +iana.org. 7087 IN NS c.iana-servers.net. +iana.org. 7087 IN NS ns.icann.org. + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/iana.org-NS-dnssec python-dnslib-0.9.10/dnslib/test/iana.org-NS-dnssec --- python-dnslib-0.9.7+hg20170303/dnslib/test/iana.org-NS-dnssec 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/iana.org-NS-dnssec 2019-03-24 00:35:53.000000000 +0000 @@ -0,0 +1,26 @@ +;; Sending: +;; QUERY: 5a61012000010000000000010469616e61036f726700000200010000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23137 +;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;iana.org. IN NS +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + +;; Got answer: +;; RESPONSE: 5a61818000010005000000010469616e61036f72670000020001c00c0002000100001bb8001401610c69616e612d73657276657273036e657400c00c0002000100001bb800040162c028c00c0002000100001bb800040163c028c00c0002000100001bb8000b026e73056963616e6ec011c00c002e000100001bb8009c00020802000151805caefd895c930235378f0469616e61036f7267000e45d2770b26a91c4d00c85fa1638b1c6b7e4c6b16d2889276b1d4263113a7edf3279efbfdfa2bf7d314188e12c51fdc17a2e9fa335d08db4c5d63281dde4340a5fe28f1f4f3bbc18c3912fe52e71467cf2a59ed972e63607d276d0a87aa750c5c9db1989ff303fc31c900123b37f0722e34c6a9ec2c4fa6c4bf0518dcc885450000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23137 +;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;iana.org. IN NS +;; ANSWER SECTION: +iana.org. 7096 IN NS a.iana-servers.net. +iana.org. 7096 IN NS b.iana-servers.net. +iana.org. 7096 IN NS c.iana-servers.net. +iana.org. 7096 IN NS ns.icann.org. +iana.org. 7096 IN RRSIG NS 8 2 86400 20190411084041 20190321031709 14223 iana.org. DkXSdwsmqRxNAMhfoWOLHGt+TGsW0oiSdrHUJjETp+3zJ577/for99MUGI4SxR/cF6Lp+jNdCNtMXWMoHd5DQKX+KPH087vBjDkS/lLnFGfPKlntly5jYH0nbQqHqnUMXJ2xmJ/zA/wxyQASOzfwci40xqnsLE+mxL8FGNzIhUU= +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/iana.org-PTR-dnssec python-dnslib-0.9.10/dnslib/test/iana.org-PTR-dnssec --- python-dnslib-0.9.7+hg20170303/dnslib/test/iana.org-PTR-dnssec 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/iana.org-PTR-dnssec 2019-03-23 19:07:24.000000000 +0000 @@ -0,0 +1,25 @@ +;; Sending: +;; QUERY: 6ad6012000010000000000010469616e61036f726700000c00010000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27350 +;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;iana.org. IN PTR +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + +;; Got answer: +;; RESPONSE: 6ad6818000010000000400010469616e61036f726700000c0001c00c0006000100000e10002a03736e7303646e73056963616e6ec011036e6f63c02a7849f71400001c2000000e100012750000000e10c00c002e000100000e10009c0006080200000e105cb1ffd75c964df5378f0469616e61036f7267000230603ee3f58769c97186bd7f3e9c383ac80d067915de1343a39ce677bcfc416ad7f305976b5b0008e5675013b567da79e4e2fdfab89f5917694cbaf487beeb222c9dfc3fb12351c845b3b3044d08ebb60542a114b12e716edd15cdf51b94e5d2f336ad440f81bd845bca521566dff904c2de4bbf0e34c6d99ef5fb158b093ac00c002f000100000e100017036170690469616e61036f726700000762018008000380c00c002e000100000e10009c002f080200000e105cadf50d5c92c9f5378f0469616e61036f72670023b112b240e6ff413f75564ced774431554cd11d8c2439091d66a566aa71687c7bcc300041ce27eebd60ea3a3270fe093c57d6f70500889ab20a5b5f20a624edb2b5afea0e6dfebbb4a89736359e704f64d0589018bde0990a1e2070dc103aee5390464238475692150f1f1950071c13fd8a1951f278dcba82b9e1ef94ed5fa10000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27350 +;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 1 +;; QUESTION SECTION: +;iana.org. IN PTR +;; AUTHORITY SECTION: +iana.org. 3600 IN SOA sns.dns.icann.org. noc.dns.icann.org. 2018113300 7200 3600 1209600 3600 +iana.org. 3600 IN RRSIG SOA 8 2 3600 20190413152719 20190323151709 14223 iana.org. AjBgPuP1h2nJcYa9fz6cODrIDQZ5Fd4TQ6Oc5ne8/EFq1/MFl2tbAAjlZ1ATtWfaeeTi/fq4n1kXaUy69Ie+6yIsnfw/sSNRyEWzswRNCOu2BUKhFLEucW7dFc31G5Tl0vM2rUQPgb2EW8pSFWbf+QTC3ku/DjTG2Z71+xWLCTo= +iana.org. 3600 IN NSEC api.iana.org. A NS SOA MX TXT AAAA RRSIG NSEC DNSKEY +iana.org. 3600 IN RRSIG NSEC 8 2 3600 20190410135213 20190320231709 14223 iana.org. I7ESskDm/0E/dVZM7XdEMVVM0R2MJDkJHWalZqpxaHx7zDAAQc4n7r1g6joycP4JPFfW9wUAiJqyCltfIKYk7bK1r+oObf67tKiXNjWecE9k0FiQGL3gmQoeIHDcEDruU5BGQjhHVpIVDx8ZUAccE/2KGVHyeNy6grnh75TtX6E= +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/iana.org-SOA python-dnslib-0.9.10/dnslib/test/iana.org-SOA --- python-dnslib-0.9.7+hg20170303/dnslib/test/iana.org-SOA 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/iana.org-SOA 2019-03-24 00:36:02.000000000 +0000 @@ -0,0 +1,16 @@ +;; Sending: +;; QUERY: 9898010000010000000000000469616e61036f72670000060001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39064 +;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;iana.org. IN SOA + +;; Got answer: +;; RESPONSE: 9898818000010001000000000469616e61036f72670000060001c00c0006000100000dc7002a03736e7303646e73056963616e6ec011036e6f63c02a7849f71600001c2000000e100012750000000e10 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39064 +;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;iana.org. IN SOA +;; ANSWER SECTION: +iana.org. 3527 IN SOA sns.dns.icann.org. noc.dns.icann.org. 2018113302 7200 3600 1209600 3600 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/iana.org-SOA-dnssec python-dnslib-0.9.10/dnslib/test/iana.org-SOA-dnssec --- python-dnslib-0.9.7+hg20170303/dnslib/test/iana.org-SOA-dnssec 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/iana.org-SOA-dnssec 2019-03-24 00:35:54.000000000 +0000 @@ -0,0 +1,23 @@ +;; Sending: +;; QUERY: a7c1012000010000000000010469616e61036f726700000600010000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42945 +;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;iana.org. IN SOA +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + +;; Got answer: +;; RESPONSE: a7c1818000010002000000010469616e61036f72670000060001c00c0006000100000dcf002a03736e7303646e73056963616e6ec011036e6f63c02a7849f71600001c2000000e100012750000000e10c00c002e000100000dcf009c0006080200000e105cb238565c96a255378f0469616e61036f726700697f15467fb85af2b1dc459f804106a0d942fd840fc65904a06186997a4391302dd6d76e1f8e4b82b3771079f385926a9ce8ac8f1525834de88b9a479e6fed1e4c68483dabb38ba2a91346901335d564ca66fb2793e333c8aff8f95176aaea2c69bcc35c9760b2f827b12cbd3ea575b449c887d1f6a8d88a6309ccfd337367160000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42945 +;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;iana.org. IN SOA +;; ANSWER SECTION: +iana.org. 3535 IN SOA sns.dns.icann.org. noc.dns.icann.org. 2018113302 7200 3600 1209600 3600 +iana.org. 3535 IN RRSIG SOA 8 2 3600 20190413192822 20190323211709 14223 iana.org. aX8VRn+4WvKx3EWfgEEGoNlC/YQPxlkEoGGGmXpDkTAt1tduH45LgrN3EHnzhZJqnOisjxUlg03oi5pHnm/tHkxoSD2rs4uiqRNGkBM11WTKZvsnk+MzyK/4+VF2quosabzDXJdgsvgnsSy9PqV1tEnIh9H2qNiKYwnM/TNzZxY= +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/iana.org-TXT python-dnslib-0.9.10/dnslib/test/iana.org-TXT --- python-dnslib-0.9.7+hg20170303/dnslib/test/iana.org-TXT 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/iana.org-TXT 2019-03-24 00:36:02.000000000 +0000 @@ -0,0 +1,18 @@ +;; Sending: +;; QUERY: ecdd010000010000000000000469616e61036f72670000100001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60637 +;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;iana.org. IN TXT + +;; Got answer: +;; RESPONSE: ecdd818000010003000000000469616e61036f72670000100001c00c0010000100015136000e0d4d533d6d733232363630363339c00c0010000100015136001a19763d737066312072656469726563743d6963616e6e2e6f7267c00c0010000100015136004544676f6f676c652d736974652d766572696669636174696f6e3d69497154546355784e4434775a4f65566535486f3732387248334a4f53446e73735973594a377055745151 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60637 +;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;iana.org. IN TXT +;; ANSWER SECTION: +iana.org. 86326 IN TXT "MS=ms22660639" +iana.org. 86326 IN TXT "v=spf1 redirect=icann.org" +iana.org. 86326 IN TXT "google-site-verification=iIqTTcUxND4wZOeVe5Ho728rH3JOSDnssYsYJ7pUtQQ" + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/iana.org-TXT-dnssec python-dnslib-0.9.10/dnslib/test/iana.org-TXT-dnssec --- python-dnslib-0.9.7+hg20170303/dnslib/test/iana.org-TXT-dnssec 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/iana.org-TXT-dnssec 2019-03-24 00:35:54.000000000 +0000 @@ -0,0 +1,25 @@ +;; Sending: +;; QUERY: a064012000010000000000010469616e61036f726700001000010000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41060 +;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;iana.org. IN TXT +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + +;; Got answer: +;; RESPONSE: a064818000010004000000010469616e61036f72670000100001c00c001000010001513e000e0d4d533d6d733232363630363339c00c001000010001513e001a19763d737066312072656469726563743d6963616e6e2e6f7267c00c001000010001513e004544676f6f676c652d736974652d766572696669636174696f6e3d69497154546355784e4434775a4f65566535486f3732387248334a4f53446e73735973594a377055745151c00c002e00010001513e009c00100802000151805cb0f1d35c94e055378f0469616e61036f7267005c4e79009ceadcd44fa6e1a9451f3efd09820704a2141ae351be8a83d3cfa3672b32abb6e46562ec77685e95a05cb4992a280307ad058d9fed1729970e914c254c0c367f6bb3c6c3535f3100df15e5ae90f30245fcfcaec42513a170c001b2b0a784f72bee4e882f31ac6242032f6a7b4e8ebdfef7afd1bc092b4992e3e427a50000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41060 +;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;iana.org. IN TXT +;; ANSWER SECTION: +iana.org. 86334 IN TXT "MS=ms22660639" +iana.org. 86334 IN TXT "v=spf1 redirect=icann.org" +iana.org. 86334 IN TXT "google-site-verification=iIqTTcUxND4wZOeVe5Ho728rH3JOSDnssYsYJ7pUtQQ" +iana.org. 86334 IN RRSIG TXT 8 2 86400 20190412201515 20190322131709 14223 iana.org. XE55AJzq3NRPpuGpRR8+/QmCBwSiFBrjUb6Kg9PPo2crMqu25GVi7HdoXpWgXLSZKigDB60FjZ/tFymXDpFMJUwMNn9rs8bDU18xAN8V5a6Q8wJF/PyuxCUToXDAAbKwp4T3K+5OiC8xrGJCAy9qe06Ovf73r9G8CStJkuPkJ6U= +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/in-addr.arpa-PTR python-dnslib-0.9.10/dnslib/test/in-addr.arpa-PTR --- python-dnslib-0.9.7+hg20170303/dnslib/test/in-addr.arpa-PTR 2017-03-01 17:38:14.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/in-addr.arpa-PTR 1970-01-01 00:00:00.000000000 +0000 @@ -1,16 +0,0 @@ -;; Sending: -;; QUERY: 815d01000001000000000000033130330239310332343902363607696e2d61646472046172706100000c0001 -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33117 -;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 -;; QUESTION SECTION: -;103.91.249.66.in-addr.arpa. IN PTR - -;; Got answer: -;; RESPONSE: 815d81800001000100000000033130330239310332343902363607696e2d61646472046172706100000c0001c00c000c00010000542b002d20726174652d6c696d697465642d70726f78792d36362d3234392d39312d31303306676f6f676c6503636f6d00 -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33117 -;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 -;; QUESTION SECTION: -;103.91.249.66.in-addr.arpa. IN PTR -;; ANSWER SECTION: -103.91.249.66.in-addr.arpa. 21547 IN PTR rate-limited-proxy-66-249-91-103.google.com. - diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/microsoft.com-ANY python-dnslib-0.9.10/dnslib/test/microsoft.com-ANY --- python-dnslib-0.9.7+hg20170303/dnslib/test/microsoft.com-ANY 2017-03-01 17:38:14.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/microsoft.com-ANY 1970-01-01 00:00:00.000000000 +0000 @@ -1,26 +0,0 @@ -;; Sending: -;; QUERY: b8f001000001000000000000096d6963726f736f667403636f6d0000ff0001 -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47344 -;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 -;; QUESTION SECTION: -;microsoft.com. IN ANY - -;; Got answer: -;; RESPONSE: b8f081800001000b00000000096d6963726f736f667403636f6d0000ff0001c00c0001000100000227000486aab92ec00c0001000100000227000486aabcddc00c0002000100004877000e036e7332046d736674036e657400c00c00020001000048770006036e7333c04fc00c00020001000048770006036e7334c04fc00c00020001000048770006036e7335c04fc00c00020001000048770006036e7331c04fc00c0006000100000227001fc09b066d736e687374c00c780c762a0000012c000002580024ea0000000e10c00c000f000100000227002a000a0d6d6963726f736f66742d636f6d046d61696c0a70726f74656374696f6e076f75746c6f6f6bc016c00c0010000100000227005958466255463644626b452b4177312f77693978674469384b567249495a75733576384c36746249515a6b4772512f7256514b4a6938436a5162427457744536346579344e4a4a776a354a36355049676756594e616264513d3dc00c001000010000022700f9f8763d7370663120696e636c7564653a5f7370662d612e6d6963726f736f66742e636f6d20696e636c7564653a5f7370662d622e6d6963726f736f66742e636f6d20696e636c7564653a5f7370662d632e6d6963726f736f66742e636f6d20696e636c7564653a5f7370662d7373672d612e6d6963726f736f66742e636f6d20696e636c7564653a7370662d612e686f746d61696c2e636f6d206970343a3134372e3234332e3132382e3234206970343a3134372e3234332e3132382e3236206970343a3134372e3234332e3132382e3235206970343a3134372e3234332e312e3437206970343a3134372e3234332e312e3438202d616c6c -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47344 -;; flags: qr rd ra; QUERY: 1, ANSWER: 11, AUTHORITY: 0, ADDITIONAL: 0 -;; QUESTION SECTION: -;microsoft.com. IN ANY -;; ANSWER SECTION: -microsoft.com. 551 IN A 134.170.185.46 -microsoft.com. 551 IN A 134.170.188.221 -microsoft.com. 18551 IN NS ns2.msft.net. -microsoft.com. 18551 IN NS ns3.msft.net. -microsoft.com. 18551 IN NS ns4.msft.net. -microsoft.com. 18551 IN NS ns5.msft.net. -microsoft.com. 18551 IN NS ns1.msft.net. -microsoft.com. 551 IN SOA ns1.msft.net. msnhst.microsoft.com. 2014082602 300 600 2419200 3600 -microsoft.com. 551 IN MX 10 microsoft-com.mail.protection.outlook.com. -microsoft.com. 551 IN TXT "FbUF6DbkE+Aw1/wi9xgDi8KVrIIZus5v8L6tbIQZkGrQ/rVQKJi8CjQbBtWtE64ey4NJJwj5J65PIggVYNabdQ==" -microsoft.com. 551 IN TXT "v=spf1 include:_spf-a.microsoft.com include:_spf-b.microsoft.com include:_spf-c.microsoft.com include:_spf-ssg-a.microsoft.com include:spf-a.hotmail.com ip4:147.243.128.24 ip4:147.243.128.26 ip4:147.243.128.25 ip4:147.243.1.47 ip4:147.243.1.48 -all" - diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/sip2sip.info-ANY python-dnslib-0.9.10/dnslib/test/sip2sip.info-ANY --- python-dnslib-0.9.7+hg20170303/dnslib/test/sip2sip.info-ANY 2017-03-01 17:38:14.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/sip2sip.info-ANY 1970-01-01 00:00:00.000000000 +0000 @@ -1,23 +0,0 @@ -;; Sending: -;; QUERY: 6c3e01000001000000000000077369703273697004696e666f0000ff0001 -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27710 -;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 -;; QUESTION SECTION: -;sip2sip.info. IN ANY - -;; Got answer: -;; RESPONSE: 6c3e81800001000800000000077369703273697004696e666f0000ff0001c00c0023000100000df2002900050064017308534950532b44325400055f73697073045f746370077369703273697004696e666f00c00c000200010000010e0012036e73320b646e732d686f7374696e67c014c00c0023000100000df20027001e00640173075349502b44325500045f736970045f756470077369703273697004696e666f00c00c000200010000010e0006036e7331c063c00c0001000100000df200045117e48cc00c0023000100000df20027000a00640173075349502b44325400045f736970045f746370077369703273697004696e666f00c00c000600010000010e002dc0b007646f6d61696e73096a6f62736572766572036f72670077afd6a00000708000001c2000093a8000002a30c00c000200010000010e0006036e7333c063 -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27710 -;; flags: qr rd ra; QUERY: 1, ANSWER: 8, AUTHORITY: 0, ADDITIONAL: 0 -;; QUESTION SECTION: -;sip2sip.info. IN ANY -;; ANSWER SECTION: -sip2sip.info. 3570 IN NAPTR 5 100 "s" "SIPS+D2T" "" _sips._tcp.sip2sip.info. -sip2sip.info. 270 IN NS ns2.dns-hosting.info. -sip2sip.info. 3570 IN NAPTR 30 100 "s" "SIP+D2U" "" _sip._udp.sip2sip.info. -sip2sip.info. 270 IN NS ns1.dns-hosting.info. -sip2sip.info. 3570 IN A 81.23.228.140 -sip2sip.info. 3570 IN NAPTR 10 100 "s" "SIP+D2T" "" _sip._tcp.sip2sip.info. -sip2sip.info. 270 IN SOA ns1.dns-hosting.info. domains.jobserver.org. 2008012448 28800 7200 604800 10800 -sip2sip.info. 270 IN NS ns3.dns-hosting.info. - diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/sip2sip.info-NAPTR python-dnslib-0.9.10/dnslib/test/sip2sip.info-NAPTR --- python-dnslib-0.9.7+hg20170303/dnslib/test/sip2sip.info-NAPTR 2017-03-01 17:38:14.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/sip2sip.info-NAPTR 2019-03-24 00:43:25.000000000 +0000 @@ -1,18 +1,18 @@ ;; Sending: -;; QUERY: d78201000001000000000000077369703273697004696e666f0000230001 -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55170 +;; QUERY: fd5101000001000000000000077369703273697004696e666f0000230001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64849 ;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;sip2sip.info. IN NAPTR ;; Got answer: -;; RESPONSE: d78281800001000300000000077369703273697004696e666f0000230001c00c0023000100000dce0027001e00640173075349502b44325500045f736970045f756470077369703273697004696e666f00c00c0023000100000dce002900050064017308534950532b44325400055f73697073045f746370077369703273697004696e666f00c00c0023000100000dce0027000a00640173075349502b44325400045f736970045f746370077369703273697004696e666f00 -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55170 +;; RESPONSE: fd5181800001000300000000077369703273697004696e666f0000230001c00c0023000100000da80027000a00640173075349502b44325400045f736970045f746370077369703273697004696e666f00c00c0023000100000da80027001e00640173075349502b44325500045f736970045f756470077369703273697004696e666f00c00c0023000100000da8002900050064017308534950532b44325400055f73697073045f746370077369703273697004696e666f00 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64849 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;sip2sip.info. IN NAPTR ;; ANSWER SECTION: -sip2sip.info. 3534 IN NAPTR 30 100 "s" "SIP+D2U" "" _sip._udp.sip2sip.info. -sip2sip.info. 3534 IN NAPTR 5 100 "s" "SIPS+D2T" "" _sips._tcp.sip2sip.info. -sip2sip.info. 3534 IN NAPTR 10 100 "s" "SIP+D2T" "" _sip._tcp.sip2sip.info. +sip2sip.info. 3496 IN NAPTR 10 100 "s" "SIP+D2T" "" _sip._tcp.sip2sip.info. +sip2sip.info. 3496 IN NAPTR 30 100 "s" "SIP+D2U" "" _sip._udp.sip2sip.info. +sip2sip.info. 3496 IN NAPTR 5 100 "s" "SIPS+D2T" "" _sips._tcp.sip2sip.info. diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/sipgate.co.uk-ANY python-dnslib-0.9.10/dnslib/test/sipgate.co.uk-ANY --- python-dnslib-0.9.7+hg20170303/dnslib/test/sipgate.co.uk-ANY 2017-03-01 17:38:14.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/sipgate.co.uk-ANY 1970-01-01 00:00:00.000000000 +0000 @@ -1,27 +0,0 @@ -;; Sending: -;; QUERY: a85701000001000000000000077369706761746502636f02756b0000ff0001 -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43095 -;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 -;; QUESTION SECTION: -;sipgate.co.uk. IN ANY - -;; Got answer: -;; RESPONSE: a85781800001000c00000000077369706761746502636f02756b0000ff0001c00c00060001000053950033036e73310b6e65747a717561647261740264650008646e7361646d696ec02f780bd92200002a3000000e1000093a8000012a70c00c00020001000053950002c02bc00c00020001000053950006036e7332c02fc00c001000010000377500cecd763d737066312061206d7820613a6d61696c2d696e2e6e65747a717561647261742e646520613a6d7830312e736970676174652e6e657420613a6d7830322e736970676174652e6e657420613a72362d312e6e65747a717561647261742e6e657420613a72362d332e6e65747a717561647261742e6e657420613a72362d342e6e65747a717561647261742e6e657420696e636c7564653a6173706d782e676f6f676c656d61696c2e636f6d20696e636c7564653a737570706f72742e7a656e6465736b2e636f6d207e616c6cc00c000f00010000539500160001054153504d58014c06474f4f474c4503434f4d00c00c000f0001000053950009000504414c5431c166c00c000f0001000053950009000504414c5432c166c00c000f0001000053950016000a064153504d58320a474f4f474c454d41494cc175c00c000f000100005395000b000a064153504d5833c1b9c00c000f000100005395000b000a064153504d5834c1b9c00c000f000100005395000b000a064153504d5835c1b9c00c0001000100000d450004d90a4f17 -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43095 -;; flags: qr rd ra; QUERY: 1, ANSWER: 12, AUTHORITY: 0, ADDITIONAL: 0 -;; QUESTION SECTION: -;sipgate.co.uk. IN ANY -;; ANSWER SECTION: -sipgate.co.uk. 21397 IN SOA ns1.netzquadrat.de. dnsadmin.netzquadrat.de. 2014042402 10800 3600 604800 76400 -sipgate.co.uk. 21397 IN NS ns1.netzquadrat.de. -sipgate.co.uk. 21397 IN NS ns2.netzquadrat.de. -sipgate.co.uk. 14197 IN TXT "v=spf1 a mx a:mail-in.netzquadrat.de a:mx01.sipgate.net a:mx02.sipgate.net a:r6-1.netzquadrat.net a:r6-3.netzquadrat.net a:r6-4.netzquadrat.net include:aspmx.googlemail.com include:support.zendesk.com ~all" -sipgate.co.uk. 21397 IN MX 1 ASPMX.L.GOOGLE.COM. -sipgate.co.uk. 21397 IN MX 5 ALT1.ASPMX.L.GOOGLE.COM. -sipgate.co.uk. 21397 IN MX 5 ALT2.ASPMX.L.GOOGLE.COM. -sipgate.co.uk. 21397 IN MX 10 ASPMX2.GOOGLEMAIL.COM. -sipgate.co.uk. 21397 IN MX 10 ASPMX3.GOOGLEMAIL.COM. -sipgate.co.uk. 21397 IN MX 10 ASPMX4.GOOGLEMAIL.COM. -sipgate.co.uk. 21397 IN MX 10 ASPMX5.GOOGLEMAIL.COM. -sipgate.co.uk. 3397 IN A 217.10.79.23 - diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/_sip._udp.sipgate.co.uk-SRV python-dnslib-0.9.10/dnslib/test/_sip._udp.sipgate.co.uk-SRV --- python-dnslib-0.9.7+hg20170303/dnslib/test/_sip._udp.sipgate.co.uk-SRV 2017-03-01 17:38:14.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/_sip._udp.sipgate.co.uk-SRV 2019-03-23 19:20:41.000000000 +0000 @@ -1,16 +1,16 @@ ;; Sending: -;; QUERY: 923001000001000000000000045f736970045f756470077369706761746502636f02756b0000210001 -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37424 +;; QUERY: 327101000001000000000000045f736970045f756470077369706761746502636f02756b0000210001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12913 ;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;_sip._udp.sipgate.co.uk. IN SRV ;; Got answer: -;; RESPONSE: 923081800001000100000000045f736970045f756470077369706761746502636f02756b0000210001c00c002100010000017800150000000013c4077369706761746502636f02756b00 -;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37424 +;; RESPONSE: 327181800001000100000000045f736970045f756470077369706761746502636f02756b0000210001c00c0021000100001b0000150000000013c4077369706761746502636f02756b00 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12913 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;_sip._udp.sipgate.co.uk. IN SRV ;; ANSWER SECTION: -_sip._udp.sipgate.co.uk. 376 IN SRV 0 0 5060 sipgate.co.uk. +_sip._udp.sipgate.co.uk. 6912 IN SRV 0 0 5060 sipgate.co.uk. diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/www.example.org-AAAA-dnssec python-dnslib-0.9.10/dnslib/test/www.example.org-AAAA-dnssec --- python-dnslib-0.9.7+hg20170303/dnslib/test/www.example.org-AAAA-dnssec 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/www.example.org-AAAA-dnssec 2019-03-23 19:08:23.000000000 +0000 @@ -0,0 +1,23 @@ +;; Sending: +;; QUERY: 2b110120000100000000000103777777076578616d706c65036f726700001c00010000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11025 +;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;www.example.org. IN AAAA +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + +;; Got answer: +;; RESPONSE: 2b118180000100020000000103777777076578616d706c65036f726700001c0001c00c001c00010000095f001026062800022000010248189325c81946c00c002e00010000095f009f001c0803000151805cab0fc05c8feecc6c61076578616d706c65036f7267000c46fdf4436c4723a8a957d279e51f84973534bf4ed1bd8f5cc7d3a1ba80c381fc347d1738e6f36f1fa14f30f260e21c95db4ccea8be27f0dcf3cce56f6903cf2a8c234107cec6824df5ec32ef975dc9e8e0a82f7dea35aa50a593875a1443614cdb69afc58e93a94ca2dd8a1a6cead4bf22520d22915861652868a0e518caef0000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11025 +;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;www.example.org. IN AAAA +;; ANSWER SECTION: +www.example.org. 2399 IN AAAA 2606:2800:220:1:248:1893:25c8:1946 +www.example.org. 2399 IN RRSIG AAAA 8 3 86400 20190408090920 20190318191732 27745 example.org. DEb99ENsRyOoqVfSeeUfhJc1NL9O0b2PXMfTobqAw4H8NH0XOObzbx+hTzDyYOIcldtMzqi+J/Dc88zlb2kDzyqMI0EHzsaCTfXsMu+XXcno4Kgvfeo1qlClk4daFENhTNtpr8WOk6lMot2KGmzq1L8iUg0ikVhhZShooOUYyu8= +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/www.example.org-A-dnssec python-dnslib-0.9.10/dnslib/test/www.example.org-A-dnssec --- python-dnslib-0.9.7+hg20170303/dnslib/test/www.example.org-A-dnssec 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/www.example.org-A-dnssec 2019-03-23 19:08:23.000000000 +0000 @@ -0,0 +1,23 @@ +;; Sending: +;; QUERY: 9dca0120000100000000000103777777076578616d706c65036f726700000100010000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40394 +;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;www.example.org. IN A +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + +;; Got answer: +;; RESPONSE: 9dca8180000100020000000103777777076578616d706c65036f72670000010001c00c000100010000269000045db8d822c00c002e000100002690009f00010803000151805cab0a155c8f29ec6c61076578616d706c65036f726700906c9772c420ea13477d70f7c1c54b47456cd91ca835295f71c3e7d89db3bf22f2820f04a3d8f2f049ee4eca697c212084362e58be95ad583e0fbecfed7cdc3646eb3fbdfd7e1c98f8820bc48c7ab8219d3969f486c0cfa98af8e9ce27c9fa5ea0c2dab4f20ff5ae9f0bf2dd535616d03007a6929ffd078986ce38ff4c27d0f00000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40394 +;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;www.example.org. IN A +;; ANSWER SECTION: +www.example.org. 9872 IN A 93.184.216.34 +www.example.org. 9872 IN RRSIG A 8 3 86400 20190408084509 20190318051732 27745 example.org. kGyXcsQg6hNHfXD3wcVLR0Vs2RyoNSlfccPn2J2zvyLygg8Eo9jy8EnuTsppfCEghDYuWL6VrVg+D77P7XzcNkbrP739fhyY+IILxIx6uCGdOWn0hsDPqYr46c4nyfpeoMLatPIP9a6fC/LdU1YW0DAHppKf/QeJhs44/0wn0PA= +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/www.example.org-ANY-dnssec python-dnslib-0.9.10/dnslib/test/www.example.org-ANY-dnssec --- python-dnslib-0.9.7+hg20170303/dnslib/test/www.example.org-ANY-dnssec 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/www.example.org-ANY-dnssec 2019-03-23 19:15:38.000000000 +0000 @@ -0,0 +1,25 @@ +;; Sending: +;; QUERY: 21060120000100000000000103777777076578616d706c65036f72670000ff00010000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8454 +;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;www.example.org. IN ANY +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + +;; Got answer: +;; RESPONSE: 21068180000100040000000103777777076578616d706c65036f72670000ff0001c00c00010001000024dd00045db8d822c00c002e0001000024dd009f00010803000151805cab0a155c8f29ec6c61076578616d706c65036f726700906c9772c420ea13477d70f7c1c54b47456cd91ca835295f71c3e7d89db3bf22f2820f04a3d8f2f049ee4eca697c212084362e58be95ad583e0fbecfed7cdc3646eb3fbdfd7e1c98f8820bc48c7ab8219d3969f486c0cfa98af8e9ce27c9fa5ea0c2dab4f20ff5ae9f0bf2dd535616d03007a6929ffd078986ce38ff4c27d0f0c00c001c0001000007ac001026062800022000010248189325c81946c00c002e0001000007ac009f001c0803000151805cab0fc05c8feecc6c61076578616d706c65036f7267000c46fdf4436c4723a8a957d279e51f84973534bf4ed1bd8f5cc7d3a1ba80c381fc347d1738e6f36f1fa14f30f260e21c95db4ccea8be27f0dcf3cce56f6903cf2a8c234107cec6824df5ec32ef975dc9e8e0a82f7dea35aa50a593875a1443614cdb69afc58e93a94ca2dd8a1a6cead4bf22520d22915861652868a0e518caef0000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8454 +;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;www.example.org. IN ANY +;; ANSWER SECTION: +www.example.org. 9437 IN A 93.184.216.34 +www.example.org. 9437 IN RRSIG A 8 3 86400 20190408084509 20190318051732 27745 example.org. kGyXcsQg6hNHfXD3wcVLR0Vs2RyoNSlfccPn2J2zvyLygg8Eo9jy8EnuTsppfCEghDYuWL6VrVg+D77P7XzcNkbrP739fhyY+IILxIx6uCGdOWn0hsDPqYr46c4nyfpeoMLatPIP9a6fC/LdU1YW0DAHppKf/QeJhs44/0wn0PA= +www.example.org. 1964 IN AAAA 2606:2800:220:1:248:1893:25c8:1946 +www.example.org. 1964 IN RRSIG AAAA 8 3 86400 20190408090920 20190318191732 27745 example.org. DEb99ENsRyOoqVfSeeUfhJc1NL9O0b2PXMfTobqAw4H8NH0XOObzbx+hTzDyYOIcldtMzqi+J/Dc88zlb2kDzyqMI0EHzsaCTfXsMu+XXcno4Kgvfeo1qlClk4daFENhTNtpr8WOk6lMot2KGmzq1L8iUg0ikVhhZShooOUYyu8= +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/www.example.org-CNAME-dnssec python-dnslib-0.9.10/dnslib/test/www.example.org-CNAME-dnssec --- python-dnslib-0.9.7+hg20170303/dnslib/test/www.example.org-CNAME-dnssec 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/www.example.org-CNAME-dnssec 2019-03-23 19:08:24.000000000 +0000 @@ -0,0 +1,25 @@ +;; Sending: +;; QUERY: 21460120000100000000000103777777076578616d706c65036f726700000500010000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8518 +;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;www.example.org. IN CNAME +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + +;; Got answer: +;; RESPONSE: 21468180000100000004000103777777076578616d706c65036f72670000050001c010000600010000094f002a03736e7303646e73056963616e6ec018036e6f63c0317849f56900001c2000000e100012750000000e10c010002e00010000094f009f0006080200000e105cabcb065c90978c6c61076578616d706c65036f726700319c0f8317c42e880b3bbfc3a317683f181b58ee223a3b8c446af88f9d8f9432eb8d66fbf9b062b9c7a30b6a413f997953454191487ffe1c98ac1b5730ac538f41a549db8809dbb442665bc5419c4c9b1b2f450f4e09cdcdb93c25589be2a4967ff4e4fd47216fb61b61529f45a27f21a066f4a1492aba72aeeeb7b952af3d55c00c002f000100000e100015076578616d706c65036f7267000006400080080003c00c002e000100000e10009f002f080300000e105caa7f505c8f0dcc6c61076578616d706c65036f7267004f1c52e6a95389efa662531a9046ac01ffc250fcf987d0892f7b85acdb336f95e06cf0059763d10077baa5119daf113c0d0cefe15657422e708cfb6d2e48880435118a3602c6279ff8e6bff823eeb793dfc949405817c8857a6cdc8cdec86f86eefbd7fe93b15ee2eba4db32900d052d543a98c8914e0259aff398cab360e9130000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8518 +;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 1 +;; QUESTION SECTION: +;www.example.org. IN CNAME +;; AUTHORITY SECTION: +example.org. 2383 IN SOA sns.dns.icann.org. noc.dns.icann.org. 2018112873 7200 3600 1209600 3600 +example.org. 2383 IN RRSIG SOA 8 2 3600 20190408222822 20190319071732 27745 example.org. MZwPgxfELogLO7/DoxdoPxgbWO4iOjuMRGr4j52PlDLrjWb7+bBiucejC2pBP5l5U0VBkUh//hyYrBtXMKxTj0GlSduICdu0QmZbxUGcTJsbL0UPTgnNzbk8JVib4qSWf/Tk/Uchb7YbYVKfRaJ/IaBm9KFJKrpyru63uVKvPVU= +www.example.org. 3600 IN NSEC example.org. A TXT AAAA RRSIG NSEC +www.example.org. 3600 IN RRSIG NSEC 8 3 3600 20190407225304 20190318031732 27745 example.org. TxxS5qlTie+mYlMakEasAf/CUPz5h9CJL3uFrNszb5XgbPAFl2PRAHe6pRGdrxE8DQzv4VZXQi5wjPttLkiIBDURijYCxief+Oa/+CPut5PfyUlAWBfIhXps3IzeyG+G7vvX/pOxXuLrpNsykA0FLVQ6mMiRTgJZr/OYyrNg6RM= +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/www.example.org-TXT-dnssec python-dnslib-0.9.10/dnslib/test/www.example.org-TXT-dnssec --- python-dnslib-0.9.7+hg20170303/dnslib/test/www.example.org-TXT-dnssec 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/www.example.org-TXT-dnssec 2019-03-23 19:08:23.000000000 +0000 @@ -0,0 +1,23 @@ +;; Sending: +;; QUERY: 5bd30120000100000000000103777777076578616d706c65036f726700001000010000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23507 +;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;www.example.org. IN TXT +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + +;; Got answer: +;; RESPONSE: 5bd38180000100020000000103777777076578616d706c65036f72670000100001c00c0010000100015180000c0b763d73706631202d616c6cc00c002e000100015180009f00100803000151805cabfec35c90432c6c61076578616d706c65036f7267000ba82d72efa564a8d8b656c83267e183f7479afa40983777d77d8ef662149ff05240cc31b454e5c9fb589cb95004bcb5a2ec3c69f25f1125b2e56410a4aea776c87f42778fcb5a60b776f278cb0bf23330c3360a3841e20c708c45af700dcca71fe6d66cafbfd42719a7ad9a34251ed3c65f2194b8303f227a6bf69002f5737f0000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23507 +;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;www.example.org. IN TXT +;; ANSWER SECTION: +www.example.org. 86400 IN TXT "v=spf1 -all" +www.example.org. 86400 IN RRSIG TXT 8 3 86400 20190409020907 20190319011732 27745 example.org. C6gtcu+lZKjYtlbIMmfhg/dHmvpAmDd3132O9mIUn/BSQMwxtFTlyftYnLlQBLy1ouw8afJfESWy5WQQpK6ndsh/QnePy1pgt3byeMsL8jMwwzYKOEHiDHCMRa9wDcynH+bWbK+/1CcZp62aNCUe08ZfIZS4MD8iemv2kAL1c38= +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/www.google.com-A python-dnslib-0.9.10/dnslib/test/www.google.com-A --- python-dnslib-0.9.7+hg20170303/dnslib/test/www.google.com-A 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/www.google.com-A 2019-03-23 19:26:26.000000000 +0000 @@ -0,0 +1,16 @@ +;; Sending: +;; QUERY: 4d6d010000010000000000000377777706676f6f676c6503636f6d0000010001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19821 +;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;www.google.com. IN A + +;; Got answer: +;; RESPONSE: 4d6d818000010001000000000377777706676f6f676c6503636f6d0000010001c00c00010001000000760004d83acc44 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19821 +;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;www.google.com. IN A +;; ANSWER SECTION: +www.google.com. 118 IN A 216.58.204.68 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/www.google.com-AAAA python-dnslib-0.9.10/dnslib/test/www.google.com-AAAA --- python-dnslib-0.9.7+hg20170303/dnslib/test/www.google.com-AAAA 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/www.google.com-AAAA 2019-03-23 19:26:26.000000000 +0000 @@ -0,0 +1,16 @@ +;; Sending: +;; QUERY: ca43010000010000000000000377777706676f6f676c6503636f6d00001c0001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51779 +;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;www.google.com. IN AAAA + +;; Got answer: +;; RESPONSE: ca43818000010001000000000377777706676f6f676c6503636f6d00001c0001c00c001c00010000007600102a001450400908140000000000002004 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51779 +;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;www.google.com. IN AAAA +;; ANSWER SECTION: +www.google.com. 118 IN AAAA 2a00:1450:4009:814::2004 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/www.google.com-CNAME python-dnslib-0.9.10/dnslib/test/www.google.com-CNAME --- python-dnslib-0.9.7+hg20170303/dnslib/test/www.google.com-CNAME 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/www.google.com-CNAME 2019-03-23 19:26:26.000000000 +0000 @@ -0,0 +1,16 @@ +;; Sending: +;; QUERY: 04be010000010000000000000377777706676f6f676c6503636f6d0000050001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1214 +;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;www.google.com. IN CNAME + +;; Got answer: +;; RESPONSE: 04be818000010000000100000377777706676f6f676c6503636f6d0000050001c010000600010000002c0026036e7331c01009646e732d61646d696ec0100e395bbd0000038400000384000007080000003c +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1214 +;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0 +;; QUESTION SECTION: +;www.google.com. IN CNAME +;; AUTHORITY SECTION: +google.com. 44 IN SOA ns1.google.com. dns-admin.google.com. 238640061 900 900 1800 60 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/www.he.net-A python-dnslib-0.9.10/dnslib/test/www.he.net-A --- python-dnslib-0.9.7+hg20170303/dnslib/test/www.he.net-A 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/www.he.net-A 2019-03-23 19:26:25.000000000 +0000 @@ -0,0 +1,17 @@ +;; Sending: +;; QUERY: 0cb40100000100000000000003777777026865036e65740000010001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3252 +;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;www.he.net. IN A + +;; Got answer: +;; RESPONSE: 0cb48180000100020000000003777777026865036e65740000010001c00c00050001000029990002c010c01000010001000018070004d8daba02 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3252 +;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;www.he.net. IN A +;; ANSWER SECTION: +www.he.net. 10649 IN CNAME he.net. +he.net. 6151 IN A 216.218.186.2 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/www.he.net-AAAA python-dnslib-0.9.10/dnslib/test/www.he.net-AAAA --- python-dnslib-0.9.7+hg20170303/dnslib/test/www.he.net-AAAA 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/www.he.net-AAAA 2019-03-23 19:26:25.000000000 +0000 @@ -0,0 +1,17 @@ +;; Sending: +;; QUERY: d5a70100000100000000000003777777026865036e657400001c0001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54695 +;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;www.he.net. IN AAAA + +;; Got answer: +;; RESPONSE: d5a78180000100020000000003777777026865036e657400001c0001c00c00050001000029990002c010c010001c000100001807001020010470000000760000000000000002 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54695 +;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;www.he.net. IN AAAA +;; ANSWER SECTION: +www.he.net. 10649 IN CNAME he.net. +he.net. 6151 IN AAAA 2001:470:0:76::2 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/www.he.net-CNAME python-dnslib-0.9.10/dnslib/test/www.he.net-CNAME --- python-dnslib-0.9.7+hg20170303/dnslib/test/www.he.net-CNAME 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/www.he.net-CNAME 2019-03-23 19:26:25.000000000 +0000 @@ -0,0 +1,16 @@ +;; Sending: +;; QUERY: 70ab0100000100000000000003777777026865036e65740000050001 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28843 +;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;www.he.net. IN CNAME + +;; Got answer: +;; RESPONSE: 70ab8180000100010000000003777777026865036e65740000050001c00c00050001000029990002c010 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28843 +;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 +;; QUESTION SECTION: +;www.he.net. IN CNAME +;; ANSWER SECTION: +www.he.net. 10649 IN CNAME he.net. + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/www.iana.org-AAAA-dnssec python-dnslib-0.9.10/dnslib/test/www.iana.org-AAAA-dnssec --- python-dnslib-0.9.7+hg20170303/dnslib/test/www.iana.org-AAAA-dnssec 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/www.iana.org-AAAA-dnssec 2019-03-23 19:14:18.000000000 +0000 @@ -0,0 +1,25 @@ +;; Sending: +;; QUERY: d10201200001000000000001037777770469616e61036f726700001c00010000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53506 +;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;www.iana.org. IN AAAA +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + +;; Got answer: +;; RESPONSE: d10281800001000400000001037777770469616e61036f726700001c0001c00c0005000100000ab000140769616e6177777703766970056963616e6ec015c00c002e000100000ab0009c0005080300000e105cb0ec585c9550d5378f0469616e61036f726700a0d0a89df610adf6d3d3735a0d148327dbe93827530867efc08004b3d446aad59f0d2dacd357a45ca09b8be72be0e7704c0c72940c53249524b8cb161e4f7ab53be32137afb8557ad8a0bb3189fd89e00cbda9c9ce01fee8698ac9cd5dc1c38162ae9234eb3b928f6bd453d71d0dd67f8aa6f6edddbd5deb22c510923c62bd3ec02a001c00010000001e00102620000002d002000000000000000008c02a002e00010000001e00a1001c07040000001e5c9ecdb85c9593387f4303766970056963616e6e036f72670013231c7b3ae943cceac92b806218f484000d879405180aa2073b4521343b5a71a0615a4cbd3b307707a899d98091cc3d1a88ec4b79fcedc371641ab69d04f125437400f4f0024caa6432cf45e43b0268bbff1e78d8d06bf7d6f382ca1978262a9a41c0e8d82ed1de7d895eab70fac515d205b8e126a6856aa2e00b0a21eb2ec10000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53506 +;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;www.iana.org. IN AAAA +;; ANSWER SECTION: +www.iana.org. 2736 IN CNAME ianawww.vip.icann.org. +www.iana.org. 2736 IN RRSIG CNAME 8 3 3600 20190412195152 20190322211709 14223 iana.org. oNConfYQrfbT03NaDRSDJ9vpOCdTCGfvwIAEs9RGqtWfDS2s01ekXKCbi+cr4OdwTAxylAxTJJUkuMsWHk96tTvjITevuFV62KC7MYn9ieAMvanJzgH+6GmKyc1dwcOBYq6SNOs7ko9r1FPXHQ3Wf4qm9u3dvV3rIsUQkjxivT4= +ianawww.vip.icann.org. 30 IN AAAA 2620:0:2d0:200::8 +ianawww.vip.icann.org. 30 IN RRSIG AAAA 7 4 30 20190330020024 20190323020024 32579 vip.icann.org. EyMcezrpQ8zqySuAYhj0hAANh5QFGAqiBztFITQ7WnGgYVpMvTswdweomdmAkcw9GojsS3n87cNxZBq2nQTxJUN0APTwAkyqZDLPReQ7Ami7/x542NBr99bzgsoZeCYqmkHA6Ngu0d59iV6rcPrFFdIFuOEmpoVqouALCiHrLsE= +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/www.iana.org-A-dnssec python-dnslib-0.9.10/dnslib/test/www.iana.org-A-dnssec --- python-dnslib-0.9.7+hg20170303/dnslib/test/www.iana.org-A-dnssec 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/www.iana.org-A-dnssec 2019-03-23 19:08:24.000000000 +0000 @@ -0,0 +1,25 @@ +;; Sending: +;; QUERY: f6d101200001000000000001037777770469616e61036f726700000100010000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63185 +;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;www.iana.org. IN A +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + +;; Got answer: +;; RESPONSE: f6d181800001000400000001037777770469616e61036f72670000010001c00c0005000100000c1200140769616e6177777703766970056963616e6ec015c00c002e000100000c12009c0005080300000e105cb0ec585c9550d5378f0469616e61036f726700a0d0a89df610adf6d3d3735a0d148327dbe93827530867efc08004b3d446aad59f0d2dacd357a45ca09b8be72be0e7704c0c72940c53249524b8cb161e4f7ab53be32137afb8557ad8a0bb3189fd89e00cbda9c9ce01fee8698ac9cd5dc1c38162ae9234eb3b928f6bd453d71d0dd67f8aa6f6edddbd5deb22c510923c62bd3ec02a000100010000001e0004c0002008c02a002e00010000001e00a1000107040000001e5c9ecb8c5c95910c7f4303766970056963616e6e036f72670027c9006e27c0085a1b2970b321d7882c4577bc1164961d2d3a67fbc3b69eda8a7be97c063dd9bb357ecfd15f162f1e082c1407b6da59cff687d6399ebacd79e718cf398b7ce3cf27d17fbd76f225f92828eb906fcf438deafacbaf75584441672c305ae6bf32d1231adbfbb80f4443bf14a954a46e663ef2da68d53fa31af96f0000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63185 +;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;www.iana.org. IN A +;; ANSWER SECTION: +www.iana.org. 3090 IN CNAME ianawww.vip.icann.org. +www.iana.org. 3090 IN RRSIG CNAME 8 3 3600 20190412195152 20190322211709 14223 iana.org. oNConfYQrfbT03NaDRSDJ9vpOCdTCGfvwIAEs9RGqtWfDS2s01ekXKCbi+cr4OdwTAxylAxTJJUkuMsWHk96tTvjITevuFV62KC7MYn9ieAMvanJzgH+6GmKyc1dwcOBYq6SNOs7ko9r1FPXHQ3Wf4qm9u3dvV3rIsUQkjxivT4= +ianawww.vip.icann.org. 30 IN A 192.0.32.8 +ianawww.vip.icann.org. 30 IN RRSIG A 7 4 30 20190330015108 20190323015108 32579 vip.icann.org. J8kAbifACFobKXCzIdeILEV3vBFklh0tOmf7w7ae2op76XwGPdm7NX7P0V8WLx4ILBQHttpZz/aH1jmeus155xjPOYt8488n0X+9dvIl+Sgo65Bvz0ON6vrLr3VYREFnLDBa5r8y0SMa2/u4D0RDvxSpVKRuZj7y2mjVP6Ma+W8= +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/www.iana.org-ANY-dnssec python-dnslib-0.9.10/dnslib/test/www.iana.org-ANY-dnssec --- python-dnslib-0.9.7+hg20170303/dnslib/test/www.iana.org-ANY-dnssec 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/www.iana.org-ANY-dnssec 2019-03-23 19:15:33.000000000 +0000 @@ -0,0 +1,23 @@ +;; Sending: +;; QUERY: 7fd001200001000000000001037777770469616e61036f72670000ff00010000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32720 +;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;www.iana.org. IN ANY +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + +;; Got answer: +;; RESPONSE: 7fd081800001000200000001037777770469616e61036f72670000ff0001c00c0005000100000a6500140769616e6177777703766970056963616e6ec015c00c002e000100000a65009c0005080300000e105cb0ec585c9550d5378f0469616e61036f726700a0d0a89df610adf6d3d3735a0d148327dbe93827530867efc08004b3d446aad59f0d2dacd357a45ca09b8be72be0e7704c0c72940c53249524b8cb161e4f7ab53be32137afb8557ad8a0bb3189fd89e00cbda9c9ce01fee8698ac9cd5dc1c38162ae9234eb3b928f6bd453d71d0dd67f8aa6f6edddbd5deb22c510923c62bd3e0000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32720 +;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;www.iana.org. IN ANY +;; ANSWER SECTION: +www.iana.org. 2661 IN CNAME ianawww.vip.icann.org. +www.iana.org. 2661 IN RRSIG CNAME 8 3 3600 20190412195152 20190322211709 14223 iana.org. oNConfYQrfbT03NaDRSDJ9vpOCdTCGfvwIAEs9RGqtWfDS2s01ekXKCbi+cr4OdwTAxylAxTJJUkuMsWHk96tTvjITevuFV62KC7MYn9ieAMvanJzgH+6GmKyc1dwcOBYq6SNOs7ko9r1FPXHQ3Wf4qm9u3dvV3rIsUQkjxivT4= +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test/www.iana.org-CNAME-dnssec python-dnslib-0.9.10/dnslib/test/www.iana.org-CNAME-dnssec --- python-dnslib-0.9.7+hg20170303/dnslib/test/www.iana.org-CNAME-dnssec 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test/www.iana.org-CNAME-dnssec 2019-03-23 19:08:25.000000000 +0000 @@ -0,0 +1,23 @@ +;; Sending: +;; QUERY: 113001200001000000000001037777770469616e61036f726700000500010000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4400 +;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;www.iana.org. IN CNAME +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + +;; Got answer: +;; RESPONSE: 113081800001000200000001037777770469616e61036f72670000050001c00c0005000100000c1100140769616e6177777703766970056963616e6ec015c00c002e000100000c11009c0005080300000e105cb0ec585c9550d5378f0469616e61036f726700a0d0a89df610adf6d3d3735a0d148327dbe93827530867efc08004b3d446aad59f0d2dacd357a45ca09b8be72be0e7704c0c72940c53249524b8cb161e4f7ab53be32137afb8557ad8a0bb3189fd89e00cbda9c9ce01fee8698ac9cd5dc1c38162ae9234eb3b928f6bd453d71d0dd67f8aa6f6edddbd5deb22c510923c62bd3e0000291000000080000000 +;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4400 +;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 +;; QUESTION SECTION: +;www.iana.org. IN CNAME +;; ANSWER SECTION: +www.iana.org. 3089 IN CNAME ianawww.vip.icann.org. +www.iana.org. 3089 IN RRSIG CNAME 8 3 3600 20190412195152 20190322211709 14223 iana.org. oNConfYQrfbT03NaDRSDJ9vpOCdTCGfvwIAEs9RGqtWfDS2s01ekXKCbi+cr4OdwTAxylAxTJJUkuMsWHk96tTvjITevuFV62KC7MYn9ieAMvanJzgH+6GmKyc1dwcOBYq6SNOs7ko9r1FPXHQ3Wf4qm9u3dvV3rIsUQkjxivT4= +;; ADDITIONAL SECTION: +;; OPT PSEUDOSECTION +; EDNS: version: 0, flags: do; udp: 4096 + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib/test_decode.py python-dnslib-0.9.10/dnslib/test_decode.py --- python-dnslib-0.9.7+hg20170303/dnslib/test_decode.py 2017-03-01 17:38:14.000000000 +0000 +++ python-dnslib-0.9.10/dnslib/test_decode.py 2019-03-23 19:14:15.000000000 +0000 @@ -49,7 +49,7 @@ from __future__ import print_function -from dnslib.dns import DNSRecord +from dnslib.dns import DNSRecord,EDNS0 from dnslib.digparser import DigParser import argparse,binascii,code,glob,os,os.path,sys,unittest @@ -67,9 +67,12 @@ class TestContainer(unittest.TestCase): pass -def new_test(domain,qtype,address="8.8.8.8",port=53,nodig=False): +def new_test(domain,qtype,address="8.8.8.8",port=53,nodig=False,dnssec=False): tcp = False q = DNSRecord.question(domain,qtype) + if dnssec: + q.add_ar(EDNS0(flags="do",udp_len=4096)) + q.header.ad = 1 a_pkt = q.send(address,port) a = DNSRecord.parse(a_pkt) if a.header.tc: @@ -78,7 +81,11 @@ a = DNSRecord.parse(a_pkt) if not nodig: - dig = getoutput("dig +qr -p %d %s %s @%s" % ( + if dnssec: + dig = getoutput("dig +qr +dnssec -p %d %s %s @%s" % ( + port, domain, qtype, address)) + else: + dig = getoutput("dig +qr +noedns +noadflag -p %d %s %s @%s" % ( port, domain, qtype, address)) dig_reply = list(iter(DigParser(dig))) # DiG might have retried in TCP mode so get last q/a @@ -102,8 +109,12 @@ print(";; + %s" % d2) return - print("Writing test file: %s-%s" % (domain,qtype)) - with open("%s-%s" % (domain,qtype),"w") as f: + if dnssec: + fname = "%s-%s-dnssec" % (domain,qtype) + else: + fname = "%s-%s" % (domain,qtype) + print("Writing test file: %s" % (fname)) + with open(fname,"w") as f: print(";; Sending:",file=f) print(";; QUERY:",binascii.hexlify(q.pack()).decode(),file=f) print(q,file=f) @@ -216,6 +227,8 @@ p.add_argument("--new","-n",nargs=2, metavar="", help="Create new test case (args: )") + p.add_argument("--dnssec",action='store_true',default=False, + help="With --new send DNSSEC request (DO)") p.add_argument("--nodig",action='store_true',default=False, help="Don't test new data against DiG") p.add_argument("--unittest",action='store_true',default=True, @@ -248,7 +261,7 @@ else: os.chdir(args.testdir) if args.new: - new_test(*args.new,nodig=args.nodig) + new_test(*args.new,nodig=args.nodig,dnssec=args.dnssec) elif args.interactive: for f in glob.iglob(args.glob): if os.path.isfile(f): diff -Nru python-dnslib-0.9.7+hg20170303/dnslib.egg-info/dependency_links.txt python-dnslib-0.9.10/dnslib.egg-info/dependency_links.txt --- python-dnslib-0.9.7+hg20170303/dnslib.egg-info/dependency_links.txt 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib.egg-info/dependency_links.txt 2019-03-24 11:14:11.000000000 +0000 @@ -0,0 +1 @@ + diff -Nru python-dnslib-0.9.7+hg20170303/dnslib.egg-info/PKG-INFO python-dnslib-0.9.10/dnslib.egg-info/PKG-INFO --- python-dnslib-0.9.7+hg20170303/dnslib.egg-info/PKG-INFO 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib.egg-info/PKG-INFO 2019-03-24 11:14:11.000000000 +0000 @@ -0,0 +1,370 @@ +Metadata-Version: 1.1 +Name: dnslib +Version: 0.9.10 +Summary: Simple library to encode/decode DNS wire-format packets +Home-page: http://bitbucket.org/paulc/dnslib/ +Author: Paul Chakravarti +Author-email: paul.chakravarti@gmail.com +License: BSD +Description: + dnslib + ------ + + A library to encode/decode DNS wire-format packets supporting both + Python 2.7 and Python 3.2+. + + The library provides: + + * Support for encoding/decoding DNS packets between wire format, + python objects, and Zone/DiG textual representation (dnslib.dns) + + * A server framework allowing the simple creation of custom DNS + resolvers (dnslib.server) and a number of example servers + created using this framework + + * A number of utilities for testing (dnslib.client, dnslib.proxy, + dnslib.intercept) + + Python 3 support was added in Version 0.9.0 which represented a fairly + major update to the library - the key changes include: + + * Python 2.7/3.2+ support (the last version supporting Python 2.6 + or earlier was version 0.8.3) + + * The 'Bimap' interface was changed significantly to explicitly + split forward (value->text) lookups via __getitem__ and + reverse (text->value) lookups via __getattr__. Applications + using the old interface will need to be updated. + + * Hostnames are now returned with a trailing dot by default (in + line with RFC) + + * Most object attributes are now typed in line with the record + definitions to make it harder to generate invalid packets + + * Support for encoding/decoding resource records in 'Zone' (BIND) + file format + + * Support for encoding/decoding packets in 'DiG' format + + * Server framework allowing (in most cases) custom resolvers to + be created by just subclassing the DNSResolver class and + overriding the 'resolve' method + + * A lot of fixes to error detection/handling which should make + the library much more robust to invalid/unsupported data. The + library should now either return a valid DNSRecord instance + when parsing a packet or raise DNSError (tested via fuzzing) + + * Improved utilities (dnslib.client, dnslib.proxy, dnslib.intercept) + + * Improvements to encoding/decoding tests including the ability + to generate test data automatically in test_decode.py (comparing + outputs against DiG) + + * Ability to compare and diff DNSRecords + + Classes + ------- + + The key DNS packet handling classes are in dnslib.dns and map to the + standard DNS packet sections: + + * DNSRecord - container for DNS packet. Contains: + - DNSHeader + - Question section containing zero or more DNSQuestion objects + - Answer section containing zero or more RR objects + - Authority section containing zero or more RR objects + - Additional section containing zero or more RR objects + * DNS RRs (resource records) contain an RR header and an RD object) + * Specific RD types are implemented as subclasses of RD + * DNS labels are represented by a DNSLabel class - in most cases + this handles conversion to/from textual representation however + does support arbitatry labels via a tuple of bytes objects + + Usage + ----- + + To decode a DNS packet: + + >>> packet = binascii.unhexlify(b'd5ad818000010005000000000377777706676f6f676c6503636f6d0000010001c00c0005000100000005000803777777016cc010c02c0001000100000005000442f95b68c02c0001000100000005000442f95b63c02c0001000100000005000442f95b67c02c0001000100000005000442f95b93') + >>> d = DNSRecord.parse(packet) + >>> d + + + + + + + + + The default text representation of the DNSRecord is in zone file format: + + >>> print(d) + ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54701 + ;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0 + ;; QUESTION SECTION: + ;www.google.com. IN A + ;; ANSWER SECTION: + www.google.com. 5 IN CNAME www.l.google.com. + www.l.google.com. 5 IN A 66.249.91.104 + www.l.google.com. 5 IN A 66.249.91.99 + www.l.google.com. 5 IN A 66.249.91.103 + www.l.google.com. 5 IN A 66.249.91.147 + + To create a DNS Request Packet: + + >>> d = DNSRecord.question("google.com") + + (This is equivalent to: d = DNSRecord(q=DNSQuestion("google.com") ) + + >>> d + + + + >>> str(DNSRecord.parse(d.pack())) == str(d) + True + + >>> print(d) + ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: ... + ;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 + ;; QUESTION SECTION: + ;google.com. IN A + + >>> d = DNSRecord.question("google.com","MX") + + (This is equivalent to: d = DNSRecord(q=DNSQuestion("google.com",QTYPE.MX) ) + + >>> str(DNSRecord.parse(d.pack())) == str(d) + True + + >>> print(d) + ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: ... + ;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 + ;; QUESTION SECTION: + ;google.com. IN MX + + To create a DNS Response Packet: + + >>> d = DNSRecord(DNSHeader(qr=1,aa=1,ra=1), + ... q=DNSQuestion("abc.com"), + ... a=RR("abc.com",rdata=A("1.2.3.4"))) + >>> d + + + + >>> str(DNSRecord.parse(d.pack())) == str(d) + True + + >>> print(d) + ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: ... + ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 + ;; QUESTION SECTION: + ;abc.com. IN A + ;; ANSWER SECTION: + abc.com. 0 IN A 1.2.3.4 + + It is also possible to create RRs from a string in zone file format + + >>> RR.fromZone("abc.com IN A 1.2.3.4") + [] + + (Note: this produces a list of RRs which should be unpacked if being + passed to add_answer/add_auth/add_ar etc) + + >>> q = DNSRecord.question("abc.com") + >>> a = q.reply() + >>> a.add_answer(*RR.fromZone("abc.com 60 A 1.2.3.4")) + >>> print(a) + ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: ... + ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 + ;; QUESTION SECTION: + ;abc.com. IN A + ;; ANSWER SECTION: + abc.com. 60 IN A 1.2.3.4 + + The zone file can contain multiple entries and supports most of the normal + format defined in RFC1035 (specifically not $INCLUDE) + + >>> z = ''' + ... $TTL 300 + ... $ORIGIN abc.com + ... + ... @ IN MX 10 mail.abc.com. + ... www IN A 1.2.3.4 + ... IN TXT "Some Text" + ... mail IN CNAME www.abc.com. + ... ''' + >>> for rr in RR.fromZone(textwrap.dedent(z)): + ... print(rr) + abc.com. 300 IN MX 10 mail.abc.com. + www.abc.com. 300 IN A 1.2.3.4 + www.abc.com. 300 IN TXT "Some Text" + mail.abc.com. 300 IN CNAME www.abc.com. + + To create a skeleton reply to a DNS query: + + >>> q = DNSRecord(q=DNSQuestion("abc.com",QTYPE.ANY)) + >>> a = q.reply() + >>> a.add_answer(RR("abc.com",QTYPE.A,rdata=A("1.2.3.4"),ttl=60)) + >>> str(DNSRecord.parse(a.pack())) == str(a) + True + >>> print(a) + ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: ... + ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 + ;; QUESTION SECTION: + ;abc.com. IN ANY + ;; ANSWER SECTION: + abc.com. 60 IN A 1.2.3.4 + + Add additional RRs: + + >>> a.add_answer(RR("xxx.abc.com",QTYPE.A,rdata=A("1.2.3.4"))) + >>> a.add_answer(RR("xxx.abc.com",QTYPE.AAAA,rdata=AAAA("1234:5678::1"))) + >>> str(DNSRecord.parse(a.pack())) == str(a) + True + >>> print(a) + ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: ... + ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0 + ;; QUESTION SECTION: + ;abc.com. IN ANY + ;; ANSWER SECTION: + abc.com. 60 IN A 1.2.3.4 + xxx.abc.com. 0 IN A 1.2.3.4 + xxx.abc.com. 0 IN AAAA 1234:5678::1 + + + It is also possible to create a reply from a string in zone file format: + + >>> q = DNSRecord(q=DNSQuestion("abc.com",QTYPE.ANY)) + >>> a = q.replyZone("abc.com 60 IN CNAME xxx.abc.com") + >>> print(a) + ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: ... + ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 + ;; QUESTION SECTION: + ;abc.com. IN ANY + ;; ANSWER SECTION: + abc.com. 60 IN CNAME xxx.abc.com. + + >>> str(DNSRecord.parse(a.pack())) == str(a) + True + + >>> q = DNSRecord(q=DNSQuestion("abc.com",QTYPE.ANY)) + >>> a = q.replyZone(textwrap.dedent(z)) + >>> print(a) + ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: ... + ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0 + ;; QUESTION SECTION: + ;abc.com. IN ANY + ;; ANSWER SECTION: + abc.com. 300 IN MX 10 mail.abc.com. + www.abc.com. 300 IN A 1.2.3.4 + www.abc.com. 300 IN TXT "Some Text" + mail.abc.com. 300 IN CNAME www.abc.com. + + To send a DNSSEC request (EDNS OPT record with DO flag & header AD flag): + + >>> q = DNSRecord(q=DNSQuestion("abc.com",QTYPE.A)) + >>> q.add_ar(EDNS0(flags="do",udp_len=4096)) + >>> q.header.ad = 1 + >>> print(q) + ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: ... + ;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 + ;; QUESTION SECTION: + ;abc.com. IN A + ;; ADDITIONAL SECTION: + ;; OPT PSEUDOSECTION + ; EDNS: version: 0, flags: do; udp: 4096 + + The library also includes a simple framework for generating custom DNS + resolvers in dnslib.server (see module docs). In post cases this just + requires implementing a custom 'resolve' method which receives a question + object and returns a response. + + A number of sample resolvers are provided as examples (see CLI --help): + + * dnslib.fixedresolver - Respond to all requests with fixed response + * dnslib.zoneresolver - Respond from Zone file + * dnslib.shellresolver - Call shell script to generate response + + The library includes a number of client utilities: + + * DiG like client library + + # python -m dnslib.client --help + + * DNS Proxy Server + + # python -m dnslib.proxy --help + + * Intercepting DNS Proxy Server (replace proxy responses for specified domains) + + # python -m dnslib.intercept --help + + + Changelog: + ---------- + + * 0.1 2010-09-19 Initial Release + * 0.2 2010-09-22 Minor fixes + * 0.3 2010-10-02 Add DNSLabel class to support arbitrary labels (embedded '.') + * 0.4 2012-02-26 Merge with dbslib-circuits + * 0.5 2012-09-13 Add support for RFC2136 DDNS updates + Patch provided by Wesley Shields - thanks + * 0.6 2012-10-20 Basic AAAA support + * 0.7 2012-10-20 Add initial EDNS0 support (untested) + * 0.8 2012-11-04 Add support for NAPTR, Authority RR and additional RR + Patch provided by Stefan Andersson (https://bitbucket.org/norox) - thanks + * 0.8.1 2012-11-05 Added NAPTR test case and fixed logic error + Patch provided by Stefan Andersson (https://bitbucket.org/norox) - thanks + * 0.8.2 2012-11-11 Patch to fix IPv6 formatting + Patch provided by Torbjörn Lönnemark (https://bitbucket.org/tobbezz) - thanks + * 0.8.3 2013-04-27 Don't parse rdata if rdlength is 0 + Patch provided by Wesley Shields - thanks + * 0.9.0 2014-05-05 Major update including Py3 support (see docs) + * 0.9.1 2014-05-05 Minor fixes + * 0.9.2 2014-08-26 Fix Bimap handling of unknown mappings to avoid exception in printing + Add typed attributes to classes + Misc fixes from James Mills - thanks + * 0.9.3 2014-08-26 Workaround for argparse bug which raises AssertionError if [] is + present in option text (really?) + * 0.9.4 2015-04-10 Fix to support multiple strings in TXT record + Patch provided by James Cherry (https://bitbucket.org/james_cherry) - thanks + NOTE: For consistency this patch changes the 'repr' output for + TXT records to always be quoted + * 0.9.5 2015-10-27 Add threading & timeout handling to DNSServer + * 0.9.6 2015-10-28 Replace strftime in RRSIG formatting to avoid possible locale issues + Identified by Bryan Everly - thanks + * 0.9.7 2017-01-15 Sort out CAA/TYPE257 DiG parsing mismatch + * 0.9.8 2019-02-25 Force DNSKEY key to be bytes object + Catch Bimap __wrapped__ attr (used by inspect module in 3.7) + * 0.9.9 2019-03-19 Add support for DNSSEC flag getters/setters (from - thanks) + Added --dnssec flags to dnslib.client & dnslib.test_decode (sets EDNS0 DO flag) + Added EDNS0 support to dnslib.digparser + * 0.9.10 2019-03-24 Fixes to DNSSEC support + Add NSEC RR support + Add --dnssec flag to dnslib.client & dnslib.test_decode + Quote/unquote non-printable characters in DNS labels + Update test data + (Thanks to for help) + + License: + -------- + + BSD + + Author: + ------- + + * Paul Chakravarti (paul.chakravarti@gmail.com) + + Master Repository/Issues: + ------------------------- + + * https://bitbucket.org/paulc/dnslib + (Cloned on GitHub: https://github.com/paulchakravarti/dnslib) + +Platform: UNKNOWN +Classifier: Topic :: Internet :: Name Service (DNS) +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 3 diff -Nru python-dnslib-0.9.7+hg20170303/dnslib.egg-info/SOURCES.txt python-dnslib-0.9.10/dnslib.egg-info/SOURCES.txt --- python-dnslib-0.9.7+hg20170303/dnslib.egg-info/SOURCES.txt 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib.egg-info/SOURCES.txt 2019-03-24 11:14:11.000000000 +0000 @@ -0,0 +1,91 @@ +LICENSE +MANIFEST.in +README +README.github +fuzz.py +run_tests.sh +setup.py +dnslib/__init__.py +dnslib/bimap.py +dnslib/bit.py +dnslib/buffer.py +dnslib/client.py +dnslib/digparser.py +dnslib/dns.py +dnslib/fixedresolver.py +dnslib/intercept.py +dnslib/label.py +dnslib/lex.py +dnslib/proxy.py +dnslib/ranges.py +dnslib/server.py +dnslib/shellresolver.py +dnslib/test_decode.py +dnslib/zoneresolver.py +dnslib.egg-info/PKG-INFO +dnslib.egg-info/SOURCES.txt +dnslib.egg-info/dependency_links.txt +dnslib.egg-info/top_level.txt +dnslib/test/1.1.1.1.in-addr.arpa.-PTR +dnslib/test/8.8.8.8.in-addr.arpa.-PTR +dnslib/test/9.9.9.9.in-addr.arpa.-PTR +dnslib/test/ECC94C1D-7026-41AA-B47E-FDFE40EB9957.com-A +dnslib/test/_sip._udp.sipgate.co.uk-SRV +dnslib/test/cloudflare.com-A +dnslib/test/cloudflare.com-A-dnssec +dnslib/test/cloudflare.com-AAAA +dnslib/test/cloudflare.com-AAAA-dnssec +dnslib/test/cloudflare.com-CNAME +dnslib/test/cloudflare.com-CNAME-dnssec +dnslib/test/cloudflare.com-MX +dnslib/test/cloudflare.com-MX-dnssec +dnslib/test/cloudflare.com-NS +dnslib/test/cloudflare.com-NS-dnssec +dnslib/test/cloudflare.com-SOA +dnslib/test/cloudflare.com-SOA-dnssec +dnslib/test/cloudflare.com-TXT +dnslib/test/cloudflare.com-TXT-dnssec +dnslib/test/example.org-DNSKEY +dnslib/test/example.org-MX-dnssec +dnslib/test/example.org-PTR-dnssec +dnslib/test/example.org-SOA-dnssec +dnslib/test/google.com-MX +dnslib/test/google.com-NS +dnslib/test/google.com-SOA +dnslib/test/google.com-TXT +dnslib/test/he.net-MX +dnslib/test/he.net-NS +dnslib/test/he.net-SOA +dnslib/test/he.net-TXT +dnslib/test/iana.org-A +dnslib/test/iana.org-A-dnssec +dnslib/test/iana.org-AAAA +dnslib/test/iana.org-AAAA-dnssec +dnslib/test/iana.org-DNSKEY +dnslib/test/iana.org-MX +dnslib/test/iana.org-MX-dnssec +dnslib/test/iana.org-NS +dnslib/test/iana.org-NS-dnssec +dnslib/test/iana.org-PTR-dnssec +dnslib/test/iana.org-SOA +dnslib/test/iana.org-SOA-dnssec +dnslib/test/iana.org-TXT +dnslib/test/iana.org-TXT-dnssec +dnslib/test/sip2sip.info-NAPTR +dnslib/test/www.example.org-A-dnssec +dnslib/test/www.example.org-AAAA-dnssec +dnslib/test/www.example.org-ANY-dnssec +dnslib/test/www.example.org-CNAME-dnssec +dnslib/test/www.example.org-TXT-dnssec +dnslib/test/www.google.com-A +dnslib/test/www.google.com-AAAA +dnslib/test/www.google.com-CNAME +dnslib/test/www.he.net-A +dnslib/test/www.he.net-AAAA +dnslib/test/www.he.net-CNAME +dnslib/test/www.iana.org-A-dnssec +dnslib/test/www.iana.org-AAAA-dnssec +dnslib/test/www.iana.org-ANY-dnssec +dnslib/test/www.iana.org-CNAME-dnssec +dnslib/test/dig/google.com-A.dig +dnslib/test/dig/google.com-ANY.dig \ No newline at end of file diff -Nru python-dnslib-0.9.7+hg20170303/dnslib.egg-info/top_level.txt python-dnslib-0.9.10/dnslib.egg-info/top_level.txt --- python-dnslib-0.9.7+hg20170303/dnslib.egg-info/top_level.txt 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/dnslib.egg-info/top_level.txt 2019-03-24 11:14:11.000000000 +0000 @@ -0,0 +1 @@ +dnslib diff -Nru python-dnslib-0.9.7+hg20170303/.hg_archival.txt python-dnslib-0.9.10/.hg_archival.txt --- python-dnslib-0.9.7+hg20170303/.hg_archival.txt 2017-03-01 17:38:14.000000000 +0000 +++ python-dnslib-0.9.10/.hg_archival.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -repo: d355b90ca65b2ded0ce7eb1cc05b56fb52188fca -node: d2c17b8b154de94deabd981dda84f65c1e084565 -branch: default -latesttag: 0.9.7 -latesttagdistance: 8 -changessincelatesttag: 8 diff -Nru python-dnslib-0.9.7+hg20170303/.hgignore python-dnslib-0.9.10/.hgignore --- python-dnslib-0.9.7+hg20170303/.hgignore 2017-03-01 17:38:14.000000000 +0000 +++ python-dnslib-0.9.10/.hgignore 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ -syntax: glob - -*.swp -*.pyc -*~ -*egg-info -.DS_Store -build -dist -MANIFEST -PKG-INFO diff -Nru python-dnslib-0.9.7+hg20170303/hgrc python-dnslib-0.9.10/hgrc --- python-dnslib-0.9.7+hg20170303/hgrc 2017-03-01 17:38:14.000000000 +0000 +++ python-dnslib-0.9.10/hgrc 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -[paths] -default = https://paulc@bitbucket.org/paulc/dnslib -github = git+ssh://git@github.com/paulchakravarti/dnslib.git - diff -Nru python-dnslib-0.9.7+hg20170303/.hgtags python-dnslib-0.9.10/.hgtags --- python-dnslib-0.9.7+hg20170303/.hgtags 2017-03-01 17:38:14.000000000 +0000 +++ python-dnslib-0.9.10/.hgtags 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -5d1c34b512568beea78225a0ce0b14d31e63695a py3-release -6622f8dfda7196c992c548c6cb3204dac0a099c8 0.8.3 -5a67733005e02cf59cdec44f5f8a0289295178ad py2 -78b64356f780269694d12b86e86d206c918c49fe 0.9.3 -78b64356f780269694d12b86e86d206c918c49fe 0.9.3 -b8d4bd109949da943c03363606cd98d971bebcc5 0.9.3 -a248c72d340fd80ec8164a9f9d0ff1ab887f327a 0.9.4 -ef31508b35d5cf7b83b76743d2f7ef94efce818f 0.9.5 -ef31508b35d5cf7b83b76743d2f7ef94efce818f 0.9.5 -0000000000000000000000000000000000000000 0.9.5 -0000000000000000000000000000000000000000 0.9.5 -12c05da42f9cf151579642e28496f8bd9e7194a3 0.9.5 -13d7ed4d6c62bcb23cbd8792b86b873c64d774c0 0.9.6 -13d7ed4d6c62bcb23cbd8792b86b873c64d774c0 0.9.6 -0000000000000000000000000000000000000000 0.9.6 -0000000000000000000000000000000000000000 0.9.6 -c6871d81b4f85c2028a2a2665633698e37321c40 0.9.6 -f303b7091b8bcc4f07ed46c5364992a20b5fc405 0.9.7 diff -Nru python-dnslib-0.9.7+hg20170303/PKG-INFO python-dnslib-0.9.10/PKG-INFO --- python-dnslib-0.9.7+hg20170303/PKG-INFO 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/PKG-INFO 2019-03-24 11:14:11.000000000 +0000 @@ -0,0 +1,370 @@ +Metadata-Version: 1.1 +Name: dnslib +Version: 0.9.10 +Summary: Simple library to encode/decode DNS wire-format packets +Home-page: http://bitbucket.org/paulc/dnslib/ +Author: Paul Chakravarti +Author-email: paul.chakravarti@gmail.com +License: BSD +Description: + dnslib + ------ + + A library to encode/decode DNS wire-format packets supporting both + Python 2.7 and Python 3.2+. + + The library provides: + + * Support for encoding/decoding DNS packets between wire format, + python objects, and Zone/DiG textual representation (dnslib.dns) + + * A server framework allowing the simple creation of custom DNS + resolvers (dnslib.server) and a number of example servers + created using this framework + + * A number of utilities for testing (dnslib.client, dnslib.proxy, + dnslib.intercept) + + Python 3 support was added in Version 0.9.0 which represented a fairly + major update to the library - the key changes include: + + * Python 2.7/3.2+ support (the last version supporting Python 2.6 + or earlier was version 0.8.3) + + * The 'Bimap' interface was changed significantly to explicitly + split forward (value->text) lookups via __getitem__ and + reverse (text->value) lookups via __getattr__. Applications + using the old interface will need to be updated. + + * Hostnames are now returned with a trailing dot by default (in + line with RFC) + + * Most object attributes are now typed in line with the record + definitions to make it harder to generate invalid packets + + * Support for encoding/decoding resource records in 'Zone' (BIND) + file format + + * Support for encoding/decoding packets in 'DiG' format + + * Server framework allowing (in most cases) custom resolvers to + be created by just subclassing the DNSResolver class and + overriding the 'resolve' method + + * A lot of fixes to error detection/handling which should make + the library much more robust to invalid/unsupported data. The + library should now either return a valid DNSRecord instance + when parsing a packet or raise DNSError (tested via fuzzing) + + * Improved utilities (dnslib.client, dnslib.proxy, dnslib.intercept) + + * Improvements to encoding/decoding tests including the ability + to generate test data automatically in test_decode.py (comparing + outputs against DiG) + + * Ability to compare and diff DNSRecords + + Classes + ------- + + The key DNS packet handling classes are in dnslib.dns and map to the + standard DNS packet sections: + + * DNSRecord - container for DNS packet. Contains: + - DNSHeader + - Question section containing zero or more DNSQuestion objects + - Answer section containing zero or more RR objects + - Authority section containing zero or more RR objects + - Additional section containing zero or more RR objects + * DNS RRs (resource records) contain an RR header and an RD object) + * Specific RD types are implemented as subclasses of RD + * DNS labels are represented by a DNSLabel class - in most cases + this handles conversion to/from textual representation however + does support arbitatry labels via a tuple of bytes objects + + Usage + ----- + + To decode a DNS packet: + + >>> packet = binascii.unhexlify(b'd5ad818000010005000000000377777706676f6f676c6503636f6d0000010001c00c0005000100000005000803777777016cc010c02c0001000100000005000442f95b68c02c0001000100000005000442f95b63c02c0001000100000005000442f95b67c02c0001000100000005000442f95b93') + >>> d = DNSRecord.parse(packet) + >>> d + + + + + + + + + The default text representation of the DNSRecord is in zone file format: + + >>> print(d) + ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54701 + ;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0 + ;; QUESTION SECTION: + ;www.google.com. IN A + ;; ANSWER SECTION: + www.google.com. 5 IN CNAME www.l.google.com. + www.l.google.com. 5 IN A 66.249.91.104 + www.l.google.com. 5 IN A 66.249.91.99 + www.l.google.com. 5 IN A 66.249.91.103 + www.l.google.com. 5 IN A 66.249.91.147 + + To create a DNS Request Packet: + + >>> d = DNSRecord.question("google.com") + + (This is equivalent to: d = DNSRecord(q=DNSQuestion("google.com") ) + + >>> d + + + + >>> str(DNSRecord.parse(d.pack())) == str(d) + True + + >>> print(d) + ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: ... + ;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 + ;; QUESTION SECTION: + ;google.com. IN A + + >>> d = DNSRecord.question("google.com","MX") + + (This is equivalent to: d = DNSRecord(q=DNSQuestion("google.com",QTYPE.MX) ) + + >>> str(DNSRecord.parse(d.pack())) == str(d) + True + + >>> print(d) + ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: ... + ;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 + ;; QUESTION SECTION: + ;google.com. IN MX + + To create a DNS Response Packet: + + >>> d = DNSRecord(DNSHeader(qr=1,aa=1,ra=1), + ... q=DNSQuestion("abc.com"), + ... a=RR("abc.com",rdata=A("1.2.3.4"))) + >>> d + + + + >>> str(DNSRecord.parse(d.pack())) == str(d) + True + + >>> print(d) + ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: ... + ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 + ;; QUESTION SECTION: + ;abc.com. IN A + ;; ANSWER SECTION: + abc.com. 0 IN A 1.2.3.4 + + It is also possible to create RRs from a string in zone file format + + >>> RR.fromZone("abc.com IN A 1.2.3.4") + [] + + (Note: this produces a list of RRs which should be unpacked if being + passed to add_answer/add_auth/add_ar etc) + + >>> q = DNSRecord.question("abc.com") + >>> a = q.reply() + >>> a.add_answer(*RR.fromZone("abc.com 60 A 1.2.3.4")) + >>> print(a) + ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: ... + ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 + ;; QUESTION SECTION: + ;abc.com. IN A + ;; ANSWER SECTION: + abc.com. 60 IN A 1.2.3.4 + + The zone file can contain multiple entries and supports most of the normal + format defined in RFC1035 (specifically not $INCLUDE) + + >>> z = ''' + ... $TTL 300 + ... $ORIGIN abc.com + ... + ... @ IN MX 10 mail.abc.com. + ... www IN A 1.2.3.4 + ... IN TXT "Some Text" + ... mail IN CNAME www.abc.com. + ... ''' + >>> for rr in RR.fromZone(textwrap.dedent(z)): + ... print(rr) + abc.com. 300 IN MX 10 mail.abc.com. + www.abc.com. 300 IN A 1.2.3.4 + www.abc.com. 300 IN TXT "Some Text" + mail.abc.com. 300 IN CNAME www.abc.com. + + To create a skeleton reply to a DNS query: + + >>> q = DNSRecord(q=DNSQuestion("abc.com",QTYPE.ANY)) + >>> a = q.reply() + >>> a.add_answer(RR("abc.com",QTYPE.A,rdata=A("1.2.3.4"),ttl=60)) + >>> str(DNSRecord.parse(a.pack())) == str(a) + True + >>> print(a) + ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: ... + ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 + ;; QUESTION SECTION: + ;abc.com. IN ANY + ;; ANSWER SECTION: + abc.com. 60 IN A 1.2.3.4 + + Add additional RRs: + + >>> a.add_answer(RR("xxx.abc.com",QTYPE.A,rdata=A("1.2.3.4"))) + >>> a.add_answer(RR("xxx.abc.com",QTYPE.AAAA,rdata=AAAA("1234:5678::1"))) + >>> str(DNSRecord.parse(a.pack())) == str(a) + True + >>> print(a) + ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: ... + ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0 + ;; QUESTION SECTION: + ;abc.com. IN ANY + ;; ANSWER SECTION: + abc.com. 60 IN A 1.2.3.4 + xxx.abc.com. 0 IN A 1.2.3.4 + xxx.abc.com. 0 IN AAAA 1234:5678::1 + + + It is also possible to create a reply from a string in zone file format: + + >>> q = DNSRecord(q=DNSQuestion("abc.com",QTYPE.ANY)) + >>> a = q.replyZone("abc.com 60 IN CNAME xxx.abc.com") + >>> print(a) + ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: ... + ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 + ;; QUESTION SECTION: + ;abc.com. IN ANY + ;; ANSWER SECTION: + abc.com. 60 IN CNAME xxx.abc.com. + + >>> str(DNSRecord.parse(a.pack())) == str(a) + True + + >>> q = DNSRecord(q=DNSQuestion("abc.com",QTYPE.ANY)) + >>> a = q.replyZone(textwrap.dedent(z)) + >>> print(a) + ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: ... + ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0 + ;; QUESTION SECTION: + ;abc.com. IN ANY + ;; ANSWER SECTION: + abc.com. 300 IN MX 10 mail.abc.com. + www.abc.com. 300 IN A 1.2.3.4 + www.abc.com. 300 IN TXT "Some Text" + mail.abc.com. 300 IN CNAME www.abc.com. + + To send a DNSSEC request (EDNS OPT record with DO flag & header AD flag): + + >>> q = DNSRecord(q=DNSQuestion("abc.com",QTYPE.A)) + >>> q.add_ar(EDNS0(flags="do",udp_len=4096)) + >>> q.header.ad = 1 + >>> print(q) + ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: ... + ;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 + ;; QUESTION SECTION: + ;abc.com. IN A + ;; ADDITIONAL SECTION: + ;; OPT PSEUDOSECTION + ; EDNS: version: 0, flags: do; udp: 4096 + + The library also includes a simple framework for generating custom DNS + resolvers in dnslib.server (see module docs). In post cases this just + requires implementing a custom 'resolve' method which receives a question + object and returns a response. + + A number of sample resolvers are provided as examples (see CLI --help): + + * dnslib.fixedresolver - Respond to all requests with fixed response + * dnslib.zoneresolver - Respond from Zone file + * dnslib.shellresolver - Call shell script to generate response + + The library includes a number of client utilities: + + * DiG like client library + + # python -m dnslib.client --help + + * DNS Proxy Server + + # python -m dnslib.proxy --help + + * Intercepting DNS Proxy Server (replace proxy responses for specified domains) + + # python -m dnslib.intercept --help + + + Changelog: + ---------- + + * 0.1 2010-09-19 Initial Release + * 0.2 2010-09-22 Minor fixes + * 0.3 2010-10-02 Add DNSLabel class to support arbitrary labels (embedded '.') + * 0.4 2012-02-26 Merge with dbslib-circuits + * 0.5 2012-09-13 Add support for RFC2136 DDNS updates + Patch provided by Wesley Shields - thanks + * 0.6 2012-10-20 Basic AAAA support + * 0.7 2012-10-20 Add initial EDNS0 support (untested) + * 0.8 2012-11-04 Add support for NAPTR, Authority RR and additional RR + Patch provided by Stefan Andersson (https://bitbucket.org/norox) - thanks + * 0.8.1 2012-11-05 Added NAPTR test case and fixed logic error + Patch provided by Stefan Andersson (https://bitbucket.org/norox) - thanks + * 0.8.2 2012-11-11 Patch to fix IPv6 formatting + Patch provided by Torbjörn Lönnemark (https://bitbucket.org/tobbezz) - thanks + * 0.8.3 2013-04-27 Don't parse rdata if rdlength is 0 + Patch provided by Wesley Shields - thanks + * 0.9.0 2014-05-05 Major update including Py3 support (see docs) + * 0.9.1 2014-05-05 Minor fixes + * 0.9.2 2014-08-26 Fix Bimap handling of unknown mappings to avoid exception in printing + Add typed attributes to classes + Misc fixes from James Mills - thanks + * 0.9.3 2014-08-26 Workaround for argparse bug which raises AssertionError if [] is + present in option text (really?) + * 0.9.4 2015-04-10 Fix to support multiple strings in TXT record + Patch provided by James Cherry (https://bitbucket.org/james_cherry) - thanks + NOTE: For consistency this patch changes the 'repr' output for + TXT records to always be quoted + * 0.9.5 2015-10-27 Add threading & timeout handling to DNSServer + * 0.9.6 2015-10-28 Replace strftime in RRSIG formatting to avoid possible locale issues + Identified by Bryan Everly - thanks + * 0.9.7 2017-01-15 Sort out CAA/TYPE257 DiG parsing mismatch + * 0.9.8 2019-02-25 Force DNSKEY key to be bytes object + Catch Bimap __wrapped__ attr (used by inspect module in 3.7) + * 0.9.9 2019-03-19 Add support for DNSSEC flag getters/setters (from - thanks) + Added --dnssec flags to dnslib.client & dnslib.test_decode (sets EDNS0 DO flag) + Added EDNS0 support to dnslib.digparser + * 0.9.10 2019-03-24 Fixes to DNSSEC support + Add NSEC RR support + Add --dnssec flag to dnslib.client & dnslib.test_decode + Quote/unquote non-printable characters in DNS labels + Update test data + (Thanks to for help) + + License: + -------- + + BSD + + Author: + ------- + + * Paul Chakravarti (paul.chakravarti@gmail.com) + + Master Repository/Issues: + ------------------------- + + * https://bitbucket.org/paulc/dnslib + (Cloned on GitHub: https://github.com/paulchakravarti/dnslib) + +Platform: UNKNOWN +Classifier: Topic :: Internet :: Name Service (DNS) +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 3 diff -Nru python-dnslib-0.9.7+hg20170303/README python-dnslib-0.9.10/README --- python-dnslib-0.9.7+hg20170303/README 2017-03-01 17:38:14.000000000 +0000 +++ python-dnslib-0.9.10/README 2019-03-24 01:10:22.000000000 +0000 @@ -161,7 +161,7 @@ >>> RR.fromZone("abc.com IN A 1.2.3.4") [] -(Note: this produces a list of RRs which should be unpacked if being + (Note: this produces a list of RRs which should be unpacked if being passed to add_answer/add_auth/add_ar etc) >>> q = DNSRecord.question("abc.com") @@ -254,6 +254,19 @@ www.abc.com. 300 IN TXT "Some Text" mail.abc.com. 300 IN CNAME www.abc.com. +To send a DNSSEC request (EDNS OPT record with DO flag & header AD flag): + + >>> q = DNSRecord(q=DNSQuestion("abc.com",QTYPE.A)) + >>> q.add_ar(EDNS0(flags="do",udp_len=4096)) + >>> q.header.ad = 1 + >>> print(q) + ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: ... + ;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 + ;; QUESTION SECTION: + ;abc.com. IN A + ;; ADDITIONAL SECTION: + ;; OPT PSEUDOSECTION + ; EDNS: version: 0, flags: do; udp: 4096 The library also includes a simple framework for generating custom DNS resolvers in dnslib.server (see module docs). In post cases this just @@ -315,6 +328,17 @@ * 0.9.6 2015-10-28 Replace strftime in RRSIG formatting to avoid possible locale issues Identified by Bryan Everly - thanks * 0.9.7 2017-01-15 Sort out CAA/TYPE257 DiG parsing mismatch + * 0.9.8 2019-02-25 Force DNSKEY key to be bytes object + Catch Bimap __wrapped__ attr (used by inspect module in 3.7) + * 0.9.9 2019-03-19 Add support for DNSSEC flag getters/setters (from - thanks) + Added --dnssec flags to dnslib.client & dnslib.test_decode (sets EDNS0 DO flag) + Added EDNS0 support to dnslib.digparser + * 0.9.10 2019-03-24 Fixes to DNSSEC support + Add NSEC RR support + Add --dnssec flag to dnslib.client & dnslib.test_decode + Quote/unquote non-printable characters in DNS labels + Update test data + (Thanks to for help) License: -------- @@ -331,4 +355,3 @@ * https://bitbucket.org/paulc/dnslib (Cloned on GitHub: https://github.com/paulchakravarti/dnslib) - diff -Nru python-dnslib-0.9.7+hg20170303/setup.cfg python-dnslib-0.9.10/setup.cfg --- python-dnslib-0.9.7+hg20170303/setup.cfg 1970-01-01 00:00:00.000000000 +0000 +++ python-dnslib-0.9.10/setup.cfg 2019-03-24 11:14:11.000000000 +0000 @@ -0,0 +1,4 @@ +[egg_info] +tag_build = +tag_date = 0 +