Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2020
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.05 KB | None | 0 0
  1. import sys
  2. import time
  3. import datetime
  4. import dns
  5. import dns.name
  6. import dns.query
  7.  
  8. def myDig(domain, server_address):
  9. queryName = dns.name.from_text(domain) # Get domain for query
  10. query = dns.message.make_query(queryName, dns.rdatatype.A)
  11. queryData = dns.query.udp(query, server_address)
  12. tld_server = '' # ROOT SERVER -> TLD -> ANS -> CLIENT
  13. for additionalData in queryData.additional:
  14. currentData = str(additionalData)
  15. if 'A' in currentData:
  16. tld_server = currentData[(currentData.index('A') + 2): ]
  17. break
  18. queryData = dns.query.udp(query, tld_server)
  19. authoritative_name_server = ''
  20. for additionalData in queryData.additional:
  21. currentData = str(additionalData)
  22. if "IN A " in currentData:
  23. splitCurrentData = currentData.split(" ")
  24. authoritative_name_server = splitCurrentData[4]
  25. break
  26. if(authoritative_name_server):
  27. queryData = dns.query.udp(query, authoritative_name_server)
  28. stringQueryData = str(queryData)
  29. queryDataAnswerData = stringQueryData.split("\n")
  30. answerSection = queryDataAnswerData[queryDataAnswerData.index(";ANSWER") + 1]
  31. splitAnswerSection = answerSection.split(" ")
  32. print("QUESTION SECTION: ")
  33. print(domain + " " + "IN A")
  34. print("ANSWER SECTION: ")
  35. print(splitAnswerSection[0] + " " + splitAnswerSection[1]
  36. + " " + splitAnswerSection[2] + " " + splitAnswerSection[3]
  37. + " " + splitAnswerSection[4])
  38.  
  39. # for answerData in queryData.answer:
  40. # queryDataAnswerData.append(answerData)
  41. # print(queryDataAnswerData)
  42.  
  43. def myDigTimer(domain):
  44. start_time = time.time()
  45. myDig(domain, "198.41.0.4")
  46. end_time = (time.time() - start_time) * 1000
  47. print("Query time: " + str(end_time) + " ms")
  48. localtime = time.asctime( time.localtime(time.time())) # From TutorialsPoint
  49. print("WHEN: " + str(localtime))
  50.  
  51. if __name__ == "__main__":
  52. myDigTimer(sys.argv[1])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement