mirror of
https://github.com/kellyjonbrazil/jc.git
synced 2025-07-15 01:24:29 +02:00
dig fixes
This commit is contained in:
@ -31,6 +31,7 @@ turner-tls.map.fastly.net. 5 IN A 151.101.65.67
|
|||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
import pprint
|
||||||
|
|
||||||
|
|
||||||
def parse_header(header):
|
def parse_header(header):
|
||||||
@ -46,11 +47,38 @@ def parse_header(header):
|
|||||||
|
|
||||||
|
|
||||||
def parse_flags_line(flagsline):
|
def parse_flags_line(flagsline):
|
||||||
return {}
|
# ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
|
||||||
|
flagsline = flagsline.split(';')
|
||||||
|
flags = flagsline.pop(0)
|
||||||
|
flags = flagsline.pop(0)
|
||||||
|
flags = flagsline.pop(0).split(':')
|
||||||
|
flags = flags[1].lstrip()
|
||||||
|
|
||||||
|
restline = flagsline[0].replace(',', ' ').replace(':', ' ')
|
||||||
|
restlist = restline.split()
|
||||||
|
|
||||||
|
query_num = restlist[1]
|
||||||
|
answer_num = restlist[3]
|
||||||
|
authority_num = restlist[5]
|
||||||
|
additional_num = restlist[7]
|
||||||
|
|
||||||
|
return {'flags': flags,
|
||||||
|
'query_num': query_num,
|
||||||
|
'answer_num': answer_num,
|
||||||
|
'authority_num': authority_num,
|
||||||
|
'additional_num': additional_num}
|
||||||
|
|
||||||
|
|
||||||
def parse_question(question):
|
def parse_question(question):
|
||||||
return {}
|
# ;www.cnn.com. IN A
|
||||||
|
question = question.split()
|
||||||
|
dns_name = question[0].lstrip(';')
|
||||||
|
dns_class = question[1]
|
||||||
|
dns_type = question[2]
|
||||||
|
|
||||||
|
return {'name': dns_name,
|
||||||
|
'class': dns_class,
|
||||||
|
'type': dns_type}
|
||||||
|
|
||||||
|
|
||||||
def parse_authority(authority):
|
def parse_authority(authority):
|
||||||
@ -58,7 +86,19 @@ def parse_authority(authority):
|
|||||||
|
|
||||||
|
|
||||||
def parse_answer(answer):
|
def parse_answer(answer):
|
||||||
return {}
|
# www.cnn.com. 5 IN CNAME turner-tls.map.fastly.net.
|
||||||
|
answer = answer.split()
|
||||||
|
answer_name = answer[0]
|
||||||
|
answer_class = answer[2]
|
||||||
|
answer_type = answer[3]
|
||||||
|
answer_ttl = answer[1]
|
||||||
|
answer_data = answer[4]
|
||||||
|
|
||||||
|
return {'name': answer_name,
|
||||||
|
'class': answer_class,
|
||||||
|
'type': answer_type,
|
||||||
|
'ttl': answer_ttl,
|
||||||
|
'data': answer_data}
|
||||||
|
|
||||||
|
|
||||||
def parse(data):
|
def parse(data):
|
||||||
@ -75,10 +115,10 @@ def parse(data):
|
|||||||
for line in cleandata:
|
for line in cleandata:
|
||||||
|
|
||||||
if line.find('; <<>> DiG') == 0:
|
if line.find('; <<>> DiG') == 0:
|
||||||
output_entry = {}
|
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if line.find(';; ->>HEADER<<-') == 0:
|
if line.find(';; ->>HEADER<<-') == 0:
|
||||||
|
output_entry = {}
|
||||||
output_entry.update(parse_header(line))
|
output_entry.update(parse_header(line))
|
||||||
continue
|
continue
|
||||||
|
|
||||||
@ -90,18 +130,17 @@ def parse(data):
|
|||||||
question = True
|
question = True
|
||||||
authority = False
|
authority = False
|
||||||
answer = False
|
answer = False
|
||||||
|
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if line.find(';') == -1 and question:
|
if question:
|
||||||
output_entry['question'] = parse_question(line)
|
output_entry['question'] = parse_question(line)
|
||||||
|
question = False
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if line.find(';; AUTHORITY SECTION:') == 0:
|
if line.find(';; AUTHORITY SECTION:') == 0:
|
||||||
question = False
|
question = False
|
||||||
authority = True
|
authority = True
|
||||||
answer = False
|
answer = False
|
||||||
|
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if authority:
|
if authority:
|
||||||
@ -112,7 +151,6 @@ def parse(data):
|
|||||||
question = False
|
question = False
|
||||||
authority = False
|
authority = False
|
||||||
answer = True
|
answer = True
|
||||||
|
|
||||||
answer_list = []
|
answer_list = []
|
||||||
continue
|
continue
|
||||||
|
|
||||||
@ -145,6 +183,6 @@ def parse(data):
|
|||||||
output.append(output_entry)
|
output.append(output_entry)
|
||||||
|
|
||||||
clean_output = list(filter(None, output))
|
clean_output = list(filter(None, output))
|
||||||
print(clean_output)
|
pprint.pprint(clean_output)
|
||||||
exit()
|
exit()
|
||||||
# return clean_output
|
# return clean_output
|
||||||
|
Reference in New Issue
Block a user