mirror of
https://github.com/kellyjonbrazil/jc.git
synced 2025-06-19 00:17:51 +02:00
@ -1,5 +1,8 @@
|
|||||||
jc changelog
|
jc changelog
|
||||||
|
|
||||||
|
20200326 v1.9.3
|
||||||
|
- Add axfr support for dig command parser
|
||||||
|
|
||||||
20200312 v1.9.2
|
20200312 v1.9.2
|
||||||
- Updated arp parser to fix OSX detection for some edge cases
|
- Updated arp parser to fix OSX detection for some edge cases
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ import jc.utils
|
|||||||
|
|
||||||
|
|
||||||
class info():
|
class info():
|
||||||
version = '1.9.2'
|
version = '1.9.3'
|
||||||
description = 'jc cli output JSON conversion tool'
|
description = 'jc cli output JSON conversion tool'
|
||||||
author = 'Kelly Brazil'
|
author = 'Kelly Brazil'
|
||||||
author_email = 'kellyjonbrazil@gmail.com'
|
author_email = 'kellyjonbrazil@gmail.com'
|
||||||
|
@ -324,7 +324,7 @@ import jc.utils
|
|||||||
|
|
||||||
|
|
||||||
class info():
|
class info():
|
||||||
version = '1.0'
|
version = '1.1'
|
||||||
description = 'dig command parser'
|
description = 'dig command parser'
|
||||||
author = 'Kelly Brazil'
|
author = 'Kelly Brazil'
|
||||||
author_email = 'kellyjonbrazil@gmail.com'
|
author_email = 'kellyjonbrazil@gmail.com'
|
||||||
@ -402,6 +402,14 @@ def process(proc_data):
|
|||||||
except (ValueError):
|
except (ValueError):
|
||||||
entry[key] = None
|
entry[key] = None
|
||||||
|
|
||||||
|
if 'axfr' in entry:
|
||||||
|
for ax in entry['axfr']:
|
||||||
|
try:
|
||||||
|
ttl_int = int(ax['ttl'])
|
||||||
|
ax['ttl'] = ttl_int
|
||||||
|
except (ValueError):
|
||||||
|
ax['ttl'] = None
|
||||||
|
|
||||||
if 'answer' in entry:
|
if 'answer' in entry:
|
||||||
for ans in entry['answer']:
|
for ans in entry['answer']:
|
||||||
try:
|
try:
|
||||||
@ -507,6 +515,24 @@ def parse_answer(answer):
|
|||||||
'ttl': answer_ttl,
|
'ttl': answer_ttl,
|
||||||
'data': answer_data}
|
'data': answer_data}
|
||||||
|
|
||||||
|
def parse_axfr(axfr):
|
||||||
|
#; <<>> DiG 9.11.14-3-Debian <<>> @81.4.108.41 axfr zonetransfer.me +nocookie
|
||||||
|
#; (1 server found)
|
||||||
|
#;; global options: +cmd
|
||||||
|
#zonetransfer.me. 7200 IN A 5.196.105.14
|
||||||
|
axfr = axfr.split(maxsplit=4)
|
||||||
|
axfr_name = axfr[0]
|
||||||
|
axfr_ttl = axfr[1]
|
||||||
|
axfr_class = axfr[2]
|
||||||
|
axfr_type = axfr[3]
|
||||||
|
axfr_data = axfr[4]
|
||||||
|
|
||||||
|
return {'name': axfr_name,
|
||||||
|
'ttl': axfr_ttl,
|
||||||
|
'class': axfr_class,
|
||||||
|
'type': axfr_type,
|
||||||
|
'data': axfr_data}
|
||||||
|
|
||||||
|
|
||||||
def parse(data, raw=False, quiet=False):
|
def parse(data, raw=False, quiet=False):
|
||||||
"""
|
"""
|
||||||
@ -534,23 +560,38 @@ def parse(data, raw=False, quiet=False):
|
|||||||
question = False
|
question = False
|
||||||
authority = False
|
authority = False
|
||||||
answer = False
|
answer = False
|
||||||
|
axfr = False
|
||||||
|
|
||||||
output_entry = {}
|
output_entry = {}
|
||||||
for line in cleandata:
|
for line in cleandata:
|
||||||
|
|
||||||
if line.find(';; ->>HEADER<<-') == 0:
|
if line.startswith('; <<>> ') and line.lower().find(' axfr ') != -1:
|
||||||
|
question = False
|
||||||
|
authority = False
|
||||||
|
answer = False
|
||||||
|
axfr = True
|
||||||
|
axfr_list = []
|
||||||
|
continue
|
||||||
|
|
||||||
|
if line.find(';') == -1 and axfr:
|
||||||
|
axfr_list.append(parse_axfr(line))
|
||||||
|
output_entry.update({'axfr': axfr_list})
|
||||||
|
continue
|
||||||
|
|
||||||
|
if line.startswith(';; ->>HEADER<<-'):
|
||||||
output_entry = {}
|
output_entry = {}
|
||||||
output_entry.update(parse_header(line))
|
output_entry.update(parse_header(line))
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if line.find(';; flags:') == 0:
|
if line.startswith(';; flags:'):
|
||||||
output_entry.update(parse_flags_line(line))
|
output_entry.update(parse_flags_line(line))
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if line.find(';; QUESTION SECTION:') == 0:
|
if line.startswith(';; QUESTION SECTION:'):
|
||||||
question = True
|
question = True
|
||||||
authority = False
|
authority = False
|
||||||
answer = False
|
answer = False
|
||||||
|
axfr = False
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if question:
|
if question:
|
||||||
@ -558,12 +599,14 @@ def parse(data, raw=False, quiet=False):
|
|||||||
question = False
|
question = False
|
||||||
authority = False
|
authority = False
|
||||||
answer = False
|
answer = False
|
||||||
|
axfr = False
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if line.find(';; AUTHORITY SECTION:') == 0:
|
if line.startswith(';; AUTHORITY SECTION:'):
|
||||||
question = False
|
question = False
|
||||||
authority = True
|
authority = True
|
||||||
answer = False
|
answer = False
|
||||||
|
axfr = False
|
||||||
authority_list = []
|
authority_list = []
|
||||||
continue
|
continue
|
||||||
|
|
||||||
@ -572,10 +615,11 @@ def parse(data, raw=False, quiet=False):
|
|||||||
output_entry.update({'authority': authority_list})
|
output_entry.update({'authority': authority_list})
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if line.find(';; ANSWER SECTION:') == 0:
|
if line.startswith(';; ANSWER SECTION:'):
|
||||||
question = False
|
question = False
|
||||||
authority = False
|
authority = False
|
||||||
answer = True
|
answer = True
|
||||||
|
axfr = False
|
||||||
answer_list = []
|
answer_list = []
|
||||||
continue
|
continue
|
||||||
|
|
||||||
@ -586,24 +630,29 @@ def parse(data, raw=False, quiet=False):
|
|||||||
|
|
||||||
# footer consists of 4 lines
|
# footer consists of 4 lines
|
||||||
# footer line 1
|
# footer line 1
|
||||||
if line.find(';; Query time:') == 0:
|
if line.startswith(';; Query time:'):
|
||||||
output_entry.update({'query_time': line.split(':')[1].lstrip()})
|
output_entry.update({'query_time': line.split(':')[1].lstrip()})
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# footer line 2
|
# footer line 2
|
||||||
if line.find(';; SERVER:') == 0:
|
if line.startswith(';; SERVER:'):
|
||||||
output_entry.update({'server': line.split(':')[1].lstrip()})
|
output_entry.update({'server': line.split(':')[1].lstrip()})
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# footer line 3
|
# footer line 3
|
||||||
if line.find(';; WHEN:') == 0:
|
if line.startswith(';; WHEN:'):
|
||||||
output_entry.update({'when': line.split(':', maxsplit=1)[1].lstrip()})
|
output_entry.update({'when': line.split(':', maxsplit=1)[1].lstrip()})
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# footer line 4 (last line)
|
# footer line 4 (last line)
|
||||||
if line.find(';; MSG SIZE rcvd:') == 0:
|
if line.startswith(';; MSG SIZE rcvd:'):
|
||||||
output_entry.update({'rcvd': line.split(':')[1].lstrip()})
|
output_entry.update({'rcvd': line.split(':')[1].lstrip()})
|
||||||
|
|
||||||
|
if output_entry:
|
||||||
|
raw_output.append(output_entry)
|
||||||
|
elif line.startswith(';; XFR size:'):
|
||||||
|
output_entry.update({'size': line.split(':')[1].lstrip()})
|
||||||
|
|
||||||
if output_entry:
|
if output_entry:
|
||||||
raw_output.append(output_entry)
|
raw_output.append(output_entry)
|
||||||
|
|
||||||
|
2
setup.py
2
setup.py
@ -5,7 +5,7 @@ with open('README.md', 'r') as f:
|
|||||||
|
|
||||||
setuptools.setup(
|
setuptools.setup(
|
||||||
name='jc',
|
name='jc',
|
||||||
version='1.9.2',
|
version='1.9.3',
|
||||||
author='Kelly Brazil',
|
author='Kelly Brazil',
|
||||||
author_email='kellyjonbrazil@gmail.com',
|
author_email='kellyjonbrazil@gmail.com',
|
||||||
description='This tool serializes the output of popular command line tools and filetypes to structured JSON output.',
|
description='This tool serializes the output of popular command line tools and filetypes to structured JSON output.',
|
||||||
|
1
tests/fixtures/centos-7.7/dig-axfr.json
vendored
Normal file
1
tests/fixtures/centos-7.7/dig-axfr.json
vendored
Normal file
File diff suppressed because one or more lines are too long
60
tests/fixtures/centos-7.7/dig-axfr.out
vendored
Normal file
60
tests/fixtures/centos-7.7/dig-axfr.out
vendored
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
|
||||||
|
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> @81.4.108.41 AXFR zonetransfer.me +nocookie
|
||||||
|
; (1 server found)
|
||||||
|
;; global options: +cmd
|
||||||
|
zonetransfer.me. 7200 IN SOA nsztm1.digi.ninja. robin.digi.ninja. 2019100801 172800 900 1209600 3600
|
||||||
|
zonetransfer.me. 300 IN HINFO "Casio fx-700G" "Windows XP"
|
||||||
|
zonetransfer.me. 301 IN TXT "google-site-verification=tyP28J7JAUHA9fw2sHXMgcCC0I6XBmmoVi04VlMewxA"
|
||||||
|
zonetransfer.me. 7200 IN MX 0 ASPMX.L.GOOGLE.COM.
|
||||||
|
zonetransfer.me. 7200 IN MX 10 ALT1.ASPMX.L.GOOGLE.COM.
|
||||||
|
zonetransfer.me. 7200 IN MX 10 ALT2.ASPMX.L.GOOGLE.COM.
|
||||||
|
zonetransfer.me. 7200 IN MX 20 ASPMX2.GOOGLEMAIL.COM.
|
||||||
|
zonetransfer.me. 7200 IN MX 20 ASPMX3.GOOGLEMAIL.COM.
|
||||||
|
zonetransfer.me. 7200 IN MX 20 ASPMX4.GOOGLEMAIL.COM.
|
||||||
|
zonetransfer.me. 7200 IN MX 20 ASPMX5.GOOGLEMAIL.COM.
|
||||||
|
zonetransfer.me. 7200 IN A 5.196.105.14
|
||||||
|
zonetransfer.me. 7200 IN NS nsztm1.digi.ninja.
|
||||||
|
zonetransfer.me. 7200 IN NS nsztm2.digi.ninja.
|
||||||
|
_acme-challenge.zonetransfer.me. 301 IN TXT "6Oa05hbUJ9xSsvYy7pApQvwCUSSGgxvrbdizjePEsZI"
|
||||||
|
_sip._tcp.zonetransfer.me. 14000 IN SRV 0 0 5060 www.zonetransfer.me.
|
||||||
|
14.105.196.5.IN-ADDR.ARPA.zonetransfer.me. 7200 IN PTR www.zonetransfer.me.
|
||||||
|
asfdbauthdns.zonetransfer.me. 7900 IN AFSDB 1 asfdbbox.zonetransfer.me.
|
||||||
|
asfdbbox.zonetransfer.me. 7200 IN A 127.0.0.1
|
||||||
|
asfdbvolume.zonetransfer.me. 7800 IN AFSDB 1 asfdbbox.zonetransfer.me.
|
||||||
|
canberra-office.zonetransfer.me. 7200 IN A 202.14.81.230
|
||||||
|
cmdexec.zonetransfer.me. 300 IN TXT "; ls"
|
||||||
|
contact.zonetransfer.me. 2592000 IN TXT "Remember to call or email Pippa on +44 123 4567890 or pippa@zonetransfer.me when making DNS changes"
|
||||||
|
dc-office.zonetransfer.me. 7200 IN A 143.228.181.132
|
||||||
|
deadbeef.zonetransfer.me. 7201 IN AAAA dead:beaf::
|
||||||
|
dr.zonetransfer.me. 300 IN LOC 53 20 56.558 N 1 38 33.526 W 0.00m 1m 10000m 10m
|
||||||
|
DZC.zonetransfer.me. 7200 IN TXT "AbCdEfG"
|
||||||
|
email.zonetransfer.me. 2222 IN NAPTR 1 1 "P" "E2U+email" "" email.zonetransfer.me.zonetransfer.me.
|
||||||
|
email.zonetransfer.me. 7200 IN A 74.125.206.26
|
||||||
|
Hello.zonetransfer.me. 7200 IN TXT "Hi to Josh and all his class"
|
||||||
|
home.zonetransfer.me. 7200 IN A 127.0.0.1
|
||||||
|
Info.zonetransfer.me. 7200 IN TXT "ZoneTransfer.me service provided by Robin Wood - robin@digi.ninja. See http://digi.ninja/projects/zonetransferme.php for more information."
|
||||||
|
internal.zonetransfer.me. 300 IN NS intns1.zonetransfer.me.
|
||||||
|
internal.zonetransfer.me. 300 IN NS intns2.zonetransfer.me.
|
||||||
|
intns1.zonetransfer.me. 300 IN A 81.4.108.41
|
||||||
|
intns2.zonetransfer.me. 300 IN A 167.88.42.94
|
||||||
|
office.zonetransfer.me. 7200 IN A 4.23.39.254
|
||||||
|
ipv6actnow.org.zonetransfer.me. 7200 IN AAAA 2001:67c:2e8:11::c100:1332
|
||||||
|
owa.zonetransfer.me. 7200 IN A 207.46.197.32
|
||||||
|
robinwood.zonetransfer.me. 302 IN TXT "Robin Wood"
|
||||||
|
rp.zonetransfer.me. 321 IN RP robin.zonetransfer.me. robinwood.zonetransfer.me.
|
||||||
|
sip.zonetransfer.me. 3333 IN NAPTR 2 3 "P" "E2U+sip" "!^.*$!sip:customer-service@zonetransfer.me!" .
|
||||||
|
sqli.zonetransfer.me. 300 IN TXT "' or 1=1 --"
|
||||||
|
sshock.zonetransfer.me. 7200 IN TXT "() { :]}; echo ShellShocked"
|
||||||
|
staging.zonetransfer.me. 7200 IN CNAME www.sydneyoperahouse.com.
|
||||||
|
alltcpportsopen.firewall.test.zonetransfer.me. 301 IN A 127.0.0.1
|
||||||
|
testing.zonetransfer.me. 301 IN CNAME www.zonetransfer.me.
|
||||||
|
vpn.zonetransfer.me. 4000 IN A 174.36.59.154
|
||||||
|
www.zonetransfer.me. 7200 IN A 5.196.105.14
|
||||||
|
xss.zonetransfer.me. 300 IN TXT "'><script>alert('Boo')</script>"
|
||||||
|
zonetransfer.me. 7200 IN SOA nsztm1.digi.ninja. robin.digi.ninja. 2019100801 172800 900 1209600 3600
|
||||||
|
;; Query time: 182 msec
|
||||||
|
;; SERVER: 81.4.108.41#53(81.4.108.41)
|
||||||
|
;; WHEN: Wed Mar 25 20:01:47 PDT 2020
|
||||||
|
;; XFR size: 50 records (messages 1, bytes 1994)
|
||||||
|
|
||||||
|
|
1
tests/fixtures/osx-10.14.6/dig-axfr.json
vendored
Normal file
1
tests/fixtures/osx-10.14.6/dig-axfr.json
vendored
Normal file
File diff suppressed because one or more lines are too long
59
tests/fixtures/osx-10.14.6/dig-axfr.out
vendored
Normal file
59
tests/fixtures/osx-10.14.6/dig-axfr.out
vendored
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
|
||||||
|
; <<>> DiG 9.10.6 <<>> @81.4.108.41 AXFR zonetransfer.me
|
||||||
|
; (1 server found)
|
||||||
|
;; global options: +cmd
|
||||||
|
zonetransfer.me. 7200 IN SOA nsztm1.digi.ninja. robin.digi.ninja. 2019100801 172800 900 1209600 3600
|
||||||
|
zonetransfer.me. 300 IN HINFO "Casio fx-700G" "Windows XP"
|
||||||
|
zonetransfer.me. 301 IN TXT "google-site-verification=tyP28J7JAUHA9fw2sHXMgcCC0I6XBmmoVi04VlMewxA"
|
||||||
|
zonetransfer.me. 7200 IN MX 0 ASPMX.L.GOOGLE.COM.
|
||||||
|
zonetransfer.me. 7200 IN MX 10 ALT1.ASPMX.L.GOOGLE.COM.
|
||||||
|
zonetransfer.me. 7200 IN MX 10 ALT2.ASPMX.L.GOOGLE.COM.
|
||||||
|
zonetransfer.me. 7200 IN MX 20 ASPMX2.GOOGLEMAIL.COM.
|
||||||
|
zonetransfer.me. 7200 IN MX 20 ASPMX3.GOOGLEMAIL.COM.
|
||||||
|
zonetransfer.me. 7200 IN MX 20 ASPMX4.GOOGLEMAIL.COM.
|
||||||
|
zonetransfer.me. 7200 IN MX 20 ASPMX5.GOOGLEMAIL.COM.
|
||||||
|
zonetransfer.me. 7200 IN A 5.196.105.14
|
||||||
|
zonetransfer.me. 7200 IN NS nsztm1.digi.ninja.
|
||||||
|
zonetransfer.me. 7200 IN NS nsztm2.digi.ninja.
|
||||||
|
_acme-challenge.zonetransfer.me. 301 IN TXT "6Oa05hbUJ9xSsvYy7pApQvwCUSSGgxvrbdizjePEsZI"
|
||||||
|
_sip._tcp.zonetransfer.me. 14000 IN SRV 0 0 5060 www.zonetransfer.me.
|
||||||
|
14.105.196.5.IN-ADDR.ARPA.zonetransfer.me. 7200 IN PTR www.zonetransfer.me.
|
||||||
|
asfdbauthdns.zonetransfer.me. 7900 IN AFSDB 1 asfdbbox.zonetransfer.me.
|
||||||
|
asfdbbox.zonetransfer.me. 7200 IN A 127.0.0.1
|
||||||
|
asfdbvolume.zonetransfer.me. 7800 IN AFSDB 1 asfdbbox.zonetransfer.me.
|
||||||
|
canberra-office.zonetransfer.me. 7200 IN A 202.14.81.230
|
||||||
|
cmdexec.zonetransfer.me. 300 IN TXT "; ls"
|
||||||
|
contact.zonetransfer.me. 2592000 IN TXT "Remember to call or email Pippa on +44 123 4567890 or pippa@zonetransfer.me when making DNS changes"
|
||||||
|
dc-office.zonetransfer.me. 7200 IN A 143.228.181.132
|
||||||
|
deadbeef.zonetransfer.me. 7201 IN AAAA dead:beaf::
|
||||||
|
dr.zonetransfer.me. 300 IN LOC 53 20 56.558 N 1 38 33.526 W 0.00m 1m 10000m 10m
|
||||||
|
DZC.zonetransfer.me. 7200 IN TXT "AbCdEfG"
|
||||||
|
email.zonetransfer.me. 2222 IN NAPTR 1 1 "P" "E2U+email" "" email.zonetransfer.me.zonetransfer.me.
|
||||||
|
email.zonetransfer.me. 7200 IN A 74.125.206.26
|
||||||
|
Hello.zonetransfer.me. 7200 IN TXT "Hi to Josh and all his class"
|
||||||
|
home.zonetransfer.me. 7200 IN A 127.0.0.1
|
||||||
|
Info.zonetransfer.me. 7200 IN TXT "ZoneTransfer.me service provided by Robin Wood - robin@digi.ninja. See http://digi.ninja/projects/zonetransferme.php for more information."
|
||||||
|
internal.zonetransfer.me. 300 IN NS intns1.zonetransfer.me.
|
||||||
|
internal.zonetransfer.me. 300 IN NS intns2.zonetransfer.me.
|
||||||
|
intns1.zonetransfer.me. 300 IN A 81.4.108.41
|
||||||
|
intns2.zonetransfer.me. 300 IN A 167.88.42.94
|
||||||
|
office.zonetransfer.me. 7200 IN A 4.23.39.254
|
||||||
|
ipv6actnow.org.zonetransfer.me. 7200 IN AAAA 2001:67c:2e8:11::c100:1332
|
||||||
|
owa.zonetransfer.me. 7200 IN A 207.46.197.32
|
||||||
|
robinwood.zonetransfer.me. 302 IN TXT "Robin Wood"
|
||||||
|
rp.zonetransfer.me. 321 IN RP robin.zonetransfer.me. robinwood.zonetransfer.me.
|
||||||
|
sip.zonetransfer.me. 3333 IN NAPTR 2 3 "P" "E2U+sip" "!^.*$!sip:customer-service@zonetransfer.me!" .
|
||||||
|
sqli.zonetransfer.me. 300 IN TXT "' or 1=1 --"
|
||||||
|
sshock.zonetransfer.me. 7200 IN TXT "() { :]}; echo ShellShocked"
|
||||||
|
staging.zonetransfer.me. 7200 IN CNAME www.sydneyoperahouse.com.
|
||||||
|
alltcpportsopen.firewall.test.zonetransfer.me. 301 IN A 127.0.0.1
|
||||||
|
testing.zonetransfer.me. 301 IN CNAME www.zonetransfer.me.
|
||||||
|
vpn.zonetransfer.me. 4000 IN A 174.36.59.154
|
||||||
|
www.zonetransfer.me. 7200 IN A 5.196.105.14
|
||||||
|
xss.zonetransfer.me. 300 IN TXT "'><script>alert('Boo')</script>"
|
||||||
|
zonetransfer.me. 7200 IN SOA nsztm1.digi.ninja. robin.digi.ninja. 2019100801 172800 900 1209600 3600
|
||||||
|
;; Query time: 170 msec
|
||||||
|
;; SERVER: 81.4.108.41#53(81.4.108.41)
|
||||||
|
;; WHEN: Thu Mar 26 16:31:06 PDT 2020
|
||||||
|
;; XFR size: 50 records (messages 1, bytes 1994)
|
||||||
|
|
1
tests/fixtures/ubuntu-18.04/dig-axfr.json
vendored
Normal file
1
tests/fixtures/ubuntu-18.04/dig-axfr.json
vendored
Normal file
File diff suppressed because one or more lines are too long
57
tests/fixtures/ubuntu-18.04/dig-axfr.out
vendored
Normal file
57
tests/fixtures/ubuntu-18.04/dig-axfr.out
vendored
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
; <<>> DiG 9.11.14-3-Debian <<>> @81.4.108.41 axfr zonetransfer.me +nocookie
|
||||||
|
; (1 server found)
|
||||||
|
;; global options: +cmd
|
||||||
|
zonetransfer.me. 7200 IN SOA nsztm1.digi.ninja. robin.digi.ninja. 2019100801 172800 900 1209600 3600
|
||||||
|
zonetransfer.me. 300 IN HINFO "Casio fx-700G" "Windows XP"
|
||||||
|
zonetransfer.me. 301 IN TXT "google-site-verification=tyP28J7JAUHA9fw2sHXMgcCC0I6XBmmoVi04VlMewxA"
|
||||||
|
zonetransfer.me. 7200 IN MX 0 ASPMX.L.GOOGLE.COM.
|
||||||
|
zonetransfer.me. 7200 IN MX 10 ALT1.ASPMX.L.GOOGLE.COM.
|
||||||
|
zonetransfer.me. 7200 IN MX 10 ALT2.ASPMX.L.GOOGLE.COM.
|
||||||
|
zonetransfer.me. 7200 IN MX 20 ASPMX2.GOOGLEMAIL.COM.
|
||||||
|
zonetransfer.me. 7200 IN MX 20 ASPMX3.GOOGLEMAIL.COM.
|
||||||
|
zonetransfer.me. 7200 IN MX 20 ASPMX4.GOOGLEMAIL.COM.
|
||||||
|
zonetransfer.me. 7200 IN MX 20 ASPMX5.GOOGLEMAIL.COM.
|
||||||
|
zonetransfer.me. 7200 IN A 5.196.105.14
|
||||||
|
zonetransfer.me. 7200 IN NS nsztm1.digi.ninja.
|
||||||
|
zonetransfer.me. 7200 IN NS nsztm2.digi.ninja.
|
||||||
|
_acme-challenge.zonetransfer.me. 301 IN TXT "6Oa05hbUJ9xSsvYy7pApQvwCUSSGgxvrbdizjePEsZI"
|
||||||
|
_sip._tcp.zonetransfer.me. 14000 IN SRV 0 0 5060 www.zonetransfer.me.
|
||||||
|
14.105.196.5.IN-ADDR.ARPA.zonetransfer.me. 7200 IN PTR www.zonetransfer.me.
|
||||||
|
asfdbauthdns.zonetransfer.me. 7900 IN AFSDB 1 asfdbbox.zonetransfer.me.
|
||||||
|
asfdbbox.zonetransfer.me. 7200 IN A 127.0.0.1
|
||||||
|
asfdbvolume.zonetransfer.me. 7800 IN AFSDB 1 asfdbbox.zonetransfer.me.
|
||||||
|
canberra-office.zonetransfer.me. 7200 IN A 202.14.81.230
|
||||||
|
cmdexec.zonetransfer.me. 300 IN TXT "; ls"
|
||||||
|
contact.zonetransfer.me. 2592000 IN TXT "Remember to call or email Pippa on +44 123 4567890 or pippa@zonetransfer.me when making DNS changes"
|
||||||
|
dc-office.zonetransfer.me. 7200 IN A 143.228.181.132
|
||||||
|
deadbeef.zonetransfer.me. 7201 IN AAAA dead:beaf::
|
||||||
|
dr.zonetransfer.me. 300 IN LOC 53 20 56.558 N 1 38 33.526 W 0.00m 1m 10000m 10m
|
||||||
|
DZC.zonetransfer.me. 7200 IN TXT "AbCdEfG"
|
||||||
|
email.zonetransfer.me. 2222 IN NAPTR 1 1 "P" "E2U+email" "" email.zonetransfer.me.zonetransfer.me.
|
||||||
|
email.zonetransfer.me. 7200 IN A 74.125.206.26
|
||||||
|
Hello.zonetransfer.me. 7200 IN TXT "Hi to Josh and all his class"
|
||||||
|
home.zonetransfer.me. 7200 IN A 127.0.0.1
|
||||||
|
Info.zonetransfer.me. 7200 IN TXT "ZoneTransfer.me service provided by Robin Wood - robin@digi.ninja. See http://digi.ninja/projects/zonetransferme.php for more information."
|
||||||
|
internal.zonetransfer.me. 300 IN NS intns1.zonetransfer.me.
|
||||||
|
internal.zonetransfer.me. 300 IN NS intns2.zonetransfer.me.
|
||||||
|
intns1.zonetransfer.me. 300 IN A 81.4.108.41
|
||||||
|
intns2.zonetransfer.me. 300 IN A 167.88.42.94
|
||||||
|
office.zonetransfer.me. 7200 IN A 4.23.39.254
|
||||||
|
ipv6actnow.org.zonetransfer.me. 7200 IN AAAA 2001:67c:2e8:11::c100:1332
|
||||||
|
owa.zonetransfer.me. 7200 IN A 207.46.197.32
|
||||||
|
robinwood.zonetransfer.me. 302 IN TXT "Robin Wood"
|
||||||
|
rp.zonetransfer.me. 321 IN RP robin.zonetransfer.me. robinwood.zonetransfer.me.
|
||||||
|
sip.zonetransfer.me. 3333 IN NAPTR 2 3 "P" "E2U+sip" "!^.*$!sip:customer-service@zonetransfer.me!" .
|
||||||
|
sqli.zonetransfer.me. 300 IN TXT "' or 1=1 --"
|
||||||
|
sshock.zonetransfer.me. 7200 IN TXT "() { :]}; echo ShellShocked"
|
||||||
|
staging.zonetransfer.me. 7200 IN CNAME www.sydneyoperahouse.com.
|
||||||
|
alltcpportsopen.firewall.test.zonetransfer.me. 301 IN A 127.0.0.1
|
||||||
|
testing.zonetransfer.me. 301 IN CNAME www.zonetransfer.me.
|
||||||
|
vpn.zonetransfer.me. 4000 IN A 174.36.59.154
|
||||||
|
www.zonetransfer.me. 7200 IN A 5.196.105.14
|
||||||
|
xss.zonetransfer.me. 300 IN TXT "'><script>alert('Boo')</script>"
|
||||||
|
zonetransfer.me. 7200 IN SOA nsztm1.digi.ninja. robin.digi.ninja. 2019100801 172800 900 1209600 3600
|
||||||
|
;; Query time: 105 msec
|
||||||
|
;; SERVER: 81.4.108.41#53(81.4.108.41)
|
||||||
|
;; WHEN: Wed Mar 25 14:34:55 EDT 2020
|
||||||
|
;; XFR size: 50 records (messages 1, bytes 1994)
|
@ -28,6 +28,33 @@ class MyTests(unittest.TestCase):
|
|||||||
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dig-aaaa.out'), 'r', encoding='utf-8') as f:
|
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dig-aaaa.out'), 'r', encoding='utf-8') as f:
|
||||||
self.ubuntu_18_4_dig_aaaa = f.read()
|
self.ubuntu_18_4_dig_aaaa = f.read()
|
||||||
|
|
||||||
|
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/dig-axfr.out'), 'r', encoding='utf-8') as f:
|
||||||
|
self.centos_7_7_dig_axfr = f.read()
|
||||||
|
|
||||||
|
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dig-axfr.out'), 'r', encoding='utf-8') as f:
|
||||||
|
self.ubuntu_18_4_dig_axfr = f.read()
|
||||||
|
|
||||||
|
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/dig.out'), 'r', encoding='utf-8') as f:
|
||||||
|
self.osx_10_11_6_dig = f.read()
|
||||||
|
|
||||||
|
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/dig-x.out'), 'r', encoding='utf-8') as f:
|
||||||
|
self.osx_10_11_6_dig_x = f.read()
|
||||||
|
|
||||||
|
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/dig-aaaa.out'), 'r', encoding='utf-8') as f:
|
||||||
|
self.osx_10_11_6_dig_aaaa = f.read()
|
||||||
|
|
||||||
|
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/dig.out'), 'r', encoding='utf-8') as f:
|
||||||
|
self.osx_10_14_6_dig = f.read()
|
||||||
|
|
||||||
|
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/dig-x.out'), 'r', encoding='utf-8') as f:
|
||||||
|
self.osx_10_14_6_dig_x = f.read()
|
||||||
|
|
||||||
|
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/dig-aaaa.out'), 'r', encoding='utf-8') as f:
|
||||||
|
self.osx_10_14_6_dig_aaaa = f.read()
|
||||||
|
|
||||||
|
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/dig-axfr.out'), 'r', encoding='utf-8') as f:
|
||||||
|
self.osx_10_14_6_dig_axfr = f.read()
|
||||||
|
|
||||||
# output
|
# output
|
||||||
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/dig.json'), 'r', encoding='utf-8') as f:
|
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/dig.json'), 'r', encoding='utf-8') as f:
|
||||||
self.centos_7_7_dig_json = json.loads(f.read())
|
self.centos_7_7_dig_json = json.loads(f.read())
|
||||||
@ -47,6 +74,33 @@ class MyTests(unittest.TestCase):
|
|||||||
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dig-aaaa.json'), 'r', encoding='utf-8') as f:
|
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dig-aaaa.json'), 'r', encoding='utf-8') as f:
|
||||||
self.ubuntu_18_4_dig_aaaa_json = json.loads(f.read())
|
self.ubuntu_18_4_dig_aaaa_json = json.loads(f.read())
|
||||||
|
|
||||||
|
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/centos-7.7/dig-axfr.json'), 'r', encoding='utf-8') as f:
|
||||||
|
self.centos_7_7_dig_axfr_json = json.loads(f.read())
|
||||||
|
|
||||||
|
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/ubuntu-18.04/dig-axfr.json'), 'r', encoding='utf-8') as f:
|
||||||
|
self.ubuntu_18_4_dig_axfr_json = json.loads(f.read())
|
||||||
|
|
||||||
|
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/dig.json'), 'r', encoding='utf-8') as f:
|
||||||
|
self.osx_10_11_6_dig_json = json.loads(f.read())
|
||||||
|
|
||||||
|
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/dig-x.json'), 'r', encoding='utf-8') as f:
|
||||||
|
self.osx_10_11_6_dig_x_json = json.loads(f.read())
|
||||||
|
|
||||||
|
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.11.6/dig-aaaa.json'), 'r', encoding='utf-8') as f:
|
||||||
|
self.osx_10_11_6_dig_aaaa_json = json.loads(f.read())
|
||||||
|
|
||||||
|
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/dig.json'), 'r', encoding='utf-8') as f:
|
||||||
|
self.osx_10_14_6_dig_json = json.loads(f.read())
|
||||||
|
|
||||||
|
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/dig-x.json'), 'r', encoding='utf-8') as f:
|
||||||
|
self.osx_10_14_6_dig_x_json = json.loads(f.read())
|
||||||
|
|
||||||
|
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/dig-aaaa.json'), 'r', encoding='utf-8') as f:
|
||||||
|
self.osx_10_14_6_dig_aaaa_json = json.loads(f.read())
|
||||||
|
|
||||||
|
with open(os.path.join(THIS_DIR, os.pardir, 'tests/fixtures/osx-10.14.6/dig-axfr.json'), 'r', encoding='utf-8') as f:
|
||||||
|
self.osx_10_14_6_dig_axfr_json = json.loads(f.read())
|
||||||
|
|
||||||
def test_dig_centos_7_7(self):
|
def test_dig_centos_7_7(self):
|
||||||
"""
|
"""
|
||||||
Test 'dig' on Centos 7.7
|
Test 'dig' on Centos 7.7
|
||||||
@ -83,6 +137,60 @@ class MyTests(unittest.TestCase):
|
|||||||
"""
|
"""
|
||||||
self.assertEqual(jc.parsers.dig.parse(self.ubuntu_18_4_dig_aaaa, quiet=True), self.ubuntu_18_4_dig_aaaa_json)
|
self.assertEqual(jc.parsers.dig.parse(self.ubuntu_18_4_dig_aaaa, quiet=True), self.ubuntu_18_4_dig_aaaa_json)
|
||||||
|
|
||||||
|
def test_dig_axfr_centos_7_7(self):
|
||||||
|
"""
|
||||||
|
Test 'dig axfr' on Centos 7.7
|
||||||
|
"""
|
||||||
|
self.assertEqual(jc.parsers.dig.parse(self.centos_7_7_dig_axfr, quiet=True), self.centos_7_7_dig_axfr_json)
|
||||||
|
|
||||||
|
def test_dig_axfr_ubuntu_18_4(self):
|
||||||
|
"""
|
||||||
|
Test 'dig axfr' on Ubuntu 18.4
|
||||||
|
"""
|
||||||
|
self.assertEqual(jc.parsers.dig.parse(self.ubuntu_18_4_dig_axfr, quiet=True), self.ubuntu_18_4_dig_axfr_json)
|
||||||
|
|
||||||
|
def test_dig_osx_10_11_6(self):
|
||||||
|
"""
|
||||||
|
Test 'dig' on OSX 10.11.6
|
||||||
|
"""
|
||||||
|
self.assertEqual(jc.parsers.dig.parse(self.osx_10_11_6_dig, quiet=True), self.osx_10_11_6_dig_json)
|
||||||
|
|
||||||
|
def test_dig_x_osx_10_11_6(self):
|
||||||
|
"""
|
||||||
|
Test 'dig -x' on OSX 10.11.6
|
||||||
|
"""
|
||||||
|
self.assertEqual(jc.parsers.dig.parse(self.osx_10_11_6_dig_x, quiet=True), self.osx_10_11_6_dig_x_json)
|
||||||
|
|
||||||
|
def test_dig_aaaa_osx_10_11_6(self):
|
||||||
|
"""
|
||||||
|
Test 'dig -aaaa' on OSX 10.11.6
|
||||||
|
"""
|
||||||
|
self.assertEqual(jc.parsers.dig.parse(self.osx_10_11_6_dig_aaaa, quiet=True), self.osx_10_11_6_dig_aaaa_json)
|
||||||
|
|
||||||
|
def test_dig_osx_10_14_6(self):
|
||||||
|
"""
|
||||||
|
Test 'dig' on OSX 10.14.6
|
||||||
|
"""
|
||||||
|
self.assertEqual(jc.parsers.dig.parse(self.osx_10_14_6_dig, quiet=True), self.osx_10_14_6_dig_json)
|
||||||
|
|
||||||
|
def test_dig_x_osx_10_14_6(self):
|
||||||
|
"""
|
||||||
|
Test 'dig -x' on OSX 10.14.6
|
||||||
|
"""
|
||||||
|
self.assertEqual(jc.parsers.dig.parse(self.osx_10_14_6_dig_x, quiet=True), self.osx_10_14_6_dig_x_json)
|
||||||
|
|
||||||
|
def test_dig_aaaa_osx_10_14_6(self):
|
||||||
|
"""
|
||||||
|
Test 'dig -aaaa' on OSX 10.14.6
|
||||||
|
"""
|
||||||
|
self.assertEqual(jc.parsers.dig.parse(self.osx_10_14_6_dig_aaaa, quiet=True), self.osx_10_14_6_dig_aaaa_json)
|
||||||
|
|
||||||
|
def test_dig_axfr_osx_10_14_6(self):
|
||||||
|
"""
|
||||||
|
Test 'dig axfr' on OSX 10.14.6
|
||||||
|
"""
|
||||||
|
self.assertEqual(jc.parsers.dig.parse(self.osx_10_14_6_dig_axfr, quiet=True), self.osx_10_14_6_dig_axfr_json)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
Reference in New Issue
Block a user