Guest User

Untitled

a guest
Feb 3rd, 2019
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.25 KB | None | 0 0
  1. #!/usr/bin/env python
  2. import subprocess
  3. import sys
  4. import copy
  5. from prettytable import PrettyTable
  6. from scapy.all import rdpcap
  7. from scapy import route
  8. import sys
  9. from StringIO import StringIO
  10. import smtplib
  11.  
  12. fromaddr = 'rajeevchinni@gmail.com'
  13. toaddrs = 'rajeevchinni@gmail.com'
  14. username = 'rajeevchinni'
  15. password = '************'
  16. packets = rdpcap('dump_1.pcap')
  17. for pkt in packets:
  18. if (pkt.haslayer('UDP')):
  19. if(pkt['UDP'].dport == 162):
  20. server = smtplib.SMTP("smtp.gmail.com:587")
  21. server.starttls()
  22. server.login(username,password)
  23. capture = StringIO()
  24. save_stdout = sys.stdout
  25. sys.stdout = capture
  26. pkt.show()
  27. sys.stdout = save_stdout
  28. value = capture.getvalue()
  29. server.sendmail(fromaddr, toaddrs, value)
  30. #str(pkt.show())
  31. #print(yo)
  32. server.quit()
  33.  
  34.  
  35.  
  36. def printer_data(dict_1,dict_2,dict_3,num_1,num_2,num_3):
  37.  
  38. x = PrettyTable()
  39. list_keys = list(dict_1.keys())
  40. n_columns = len(list_keys)
  41. columns_list= ["column_1", "column_2", "column_3", "column_4", "column_5", "column_6"]
  42. i = 0
  43. for key in list_keys:
  44. columns_list[i] = copy.deepcopy(dict_1[key]+dict_2[key]+dict_3[key])
  45. i += 1
  46. x.add_column("Routers", ["R1"]*num_1+["R2"]*num_2+["R3"]*num_3)
  47. i=0
  48. for column in columns_list:
  49. x.add_column(list_keys[i], columns_list[i])
  50. i += 1
  51. print(x)
  52.  
  53. ##-----------v2------------------------------------##
  54. ##-----------R1------------------------------------##
  55.  
  56.  
  57. ucast = check_outpup1 = subprocess.Popen(["snmpbulkwalk -v2c -Os -c public 198.51.100.3 ifinUc"], stdout=subprocess.PIPE, shell=True)
  58. AdminStatus = check_outpup1 = subprocess.Popen(["snmpbulkwalk -v2c -Os -c public 198.51.100.3 ifAdminStatus"], stdout=subprocess.PIPE, shell=True)
  59. PhysAddress = check_outpup1 = subprocess.Popen(["snmpbulkwalk -v2c -Os -c public 198.51.100.3 ifPhysAddress"], stdout=subprocess.PIPE, shell=True)
  60. OperStatus = check_outpup1 = subprocess.Popen(["snmpbulkwalk -v2c -Os -c public 198.51.100.3 ifOperStatus"], stdout=subprocess.PIPE, shell=True)
  61. ifDescr = check_outpup1 = subprocess.Popen(["snmpbulkwalk -v2c -Os -c public 198.51.100.3 ifDescr"], stdout=subprocess.PIPE, shell=True)
  62. ifName = check_outpup1 = subprocess.Popen(["snmpbulkwalk -v2c -Os -c public 198.51.100.3 ifName"], stdout=subprocess.PIPE, shell=True)
  63.  
  64. list_er = ["ifAdminStatus","ifPhysAddress","ifOperStatus","ifDescr","ifName","ifInUcas t"]
  65. ucast_v2,error = ucast.communicate()
  66. AdminStatus_v2,error = AdminStatus.communicate()
  67. PhysAddress_v2,error = PhysAddress.communicate()
  68. OperStatus_v2,error = OperStatus.communicate()
  69. ifDescr_v2,error = ifDescr.communicate()
  70. ifName_v2,error = ifName.communicate()
  71. #print("{} \n {} \n {} \n {} \n {} \n {} \n".format(ucast_v2,AdminStatus_v2,PhysAddress_v2,OperStatus_v2,ifDescr_v2,ifName_v2))
  72. dict_1 = {"ifAdminStatus": AdminStatus_v2,"ifPhysAddress": PhysAddress_v2, "ifOperStatus": OperStatus_v2,"ifDescr": ifDescr_v2,"ifName": ifName_v2,"ifInUcast": ucast_v2}
  73. print("----------------R1---------------")
  74. for key in dict_1:
  75. print(dict_1[key])
  76.  
  77. ##--------#V3##------------------------------------------------------
  78. ##---------#R3##---------------------------------------------
  79. list_er = ["ifAdminStatus","ifPhysAddress","ifOperStatus","ifDescr","ifName","ifInUcast"]
  80. list_o = ["p1","p2","p3","p4","p5","p6"]
  81. dict_3 = {}
  82. i = 0
  83. for element in list_er:
  84. list_o[i] = subprocess.Popen(["snmpbulkwalk", "-v","3", "-l","authpriv", "-u","kelly", "-a","SHA", "-A","password", "-x","DES", "-X","password","198.51.100.5",element], stdout=subprocess.PIPE)
  85. list_o[i].wait()
  86. output, error = list_o[i].communicate()
  87. #print(output)
  88. dict_3.update({element: output})
  89. i += 1
  90. print("----------------R3---------------")
  91.  
  92. for key in dict_3:
  93. print(dict_3[key])
  94. ###------------------------v2--------------------------------##
  95. ###-------------------------R2-------------------------------##
  96.  
  97. list_er = ["ifAdminStatus","ifPhysAddress","ifOperStatus","ifDescr","ifName","ifInUcast"]
  98. list_o = ["p1","p2","p3","p4","p5","p6"]
  99. dict_2 = {}
  100. i = 0
  101. for element in list_er:
  102. list_o[i] = subprocess.Popen(["snmpbulkwalk", "-v","2c", "-c","public","198.51.100.4",element], stdout=subprocess.PIPE)
  103. list_o[i].wait()
  104. output, error = list_o[i].communicate()
  105. print(output)
  106.  
  107. dict_2.update({element: output})
  108. i += 1
  109. ###-------------------------R2-------------------------------##
  110. ###------------------------v2--------------------------------##
  111. print("---------------R2----------------")
  112. for key in dict_2:
  113. print(dict_2[key])
  114. ###----Number of interfaces-------------####
  115.  
  116. number_1s = subprocess.Popen(["snmpget -v 1 -c public 198.51.100.3 ifNumber.0"], stdout=subprocess.PIPE, shell=True)
  117. number_2s = subprocess.Popen(["snmpget -v 1 -c public 198.51.100.4 ifNumber.0"], stdout=subprocess.PIPE, shell=True)
  118. number_3s = subprocess.Popen(["snmpget -v3 -l authpriv -u kelly -a SHA -A password -x DES -X password 198.51.100.5 ifNumber.0"], stdout=subprocess.PIPE, shell=True)
  119.  
  120. num_1, error_1 = number_1s.communicate()
  121. print(num_1)
  122. num_list = num_1.split()
  123. num_1 = int(num_list[-1])
  124. num_2, error_2 = number_2s.communicate()
  125. num_list = num_2.split()
  126. num_2 = int(num_list[-1])
  127. num_3, error_3 = number_3s.communicate()
  128. num_list = num_3.split()
  129. num_3 = int(num_list[-1])
  130. number = num_1 + num_2 + num_3
  131. print(number)
  132. variable_dict= copy.deepcopy(dict_1)
  133.  
  134. for key in variable_dict:
  135. string_list = variable_dict[key].splitlines()
  136. string_list.pop(-1)
  137. final_list = [element.split()[-1] for element in string_list]
  138. dict_1.update({key: final_list})
  139.  
  140. variable_dict= copy.deepcopy(dict_2)
  141. for key in variable_dict:
  142. string_list = variable_dict[key].splitlines()
  143. string_list.pop(-1)
  144. final_list = [element.split()[-1] for element in string_list]
  145. dict_2.update({key: final_list})
  146.  
  147. variable_dict= copy.deepcopy(dict_3)
  148. for key in variable_dict:
  149. string_list = variable_dict[key].splitlines()
  150. string_list.pop(-1)
  151. final_list = [element.split()[-1] for element in string_list]
  152. dict_3.update({key: final_list})
  153.  
  154. print("{}\n{}\n{}\n{}".format(dict_1,dict_2,dict_3,number))
  155.  
  156. ##---------------------------------------------IP_addr & Subnetmask added--------##
  157. ip_addr_string_R1 = subprocess.Popen(["snmpwalk -v 1 -c public 198.51.100.3 ipAdEntnet"], stdout=subprocess.PIPE, shell=True)
  158. ip_addr_string_R2 =subprocess.Popen(["snmpwalk -v 2c -c public 198.51.100.4 ipAdEntnet"], stdout=subprocess.PIPE, shell=True)
  159. ip_addr_string_R3 = subprocess.Popen(["snmpwalk -v3 -l authpriv -u kelly -a SHA -A password -x DES -X password 198.51.100.5 ipAdEntnet"], stdout=subprocess.PIPE,shell=True)
  160. output_R1_string, error = ip_addr_string_R1.communicate()
  161. output_R2_string, error = ip_addr_string_R2.communicate()
  162. output_R3_string, error = ip_addr_string_R3.communicate()
  163. dict_ed = {1: output_R1_string ,2: output_R2_string, 3: output_R3_string}
  164. for i in range(1,4):
  165. print("the Active interfaces and their subnets on the Router R{} are:".format(i))
  166. for line in dict_ed[i].splitlines():
  167. print("ip Address:{} subnetmask is: {}".format(line.split("k.")[1].split(" ")[0],line.split("k.")[1].split(" ")[3]))
  168.  
  169.  
  170.  
  171. printer_data(dict_1,dict_2,dict_3,num_1-1,num_2-1,num_3-1)
Add Comment
Please, Sign In to add comment