Guest User

Untitled

a guest
Dec 3rd, 2017
421
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.12 KB | None | 0 0
  1. # @author Abrar Ajaz Wani
  2. # @email abhaywani114@gmail.com'
  3. # Dec-2017
  4. import socket
  5. class conx(object):
  6. port = int('80')
  7. addr = '127.0.0.1'
  8. encoding = 'utf-8'
  9. lis = ''
  10. data_length = 2024
  11. data_flow = 'Send_Recv'
  12.  
  13. def __init__(self,family,protocol):
  14. self.family = family
  15. self.protocol = protocol
  16.  
  17. def status(self):
  18. print((''))
  19. print('@JET:Status')
  20. print('Address: '+ self.addr)
  21. print('Port: ' + str(self.port))
  22. print('Protocol: ' + str(self.protocol))
  23. print('Family: ' + str(self.family))
  24. print('Encoding: ' + str(self.encoding))
  25. print('Buffer: '+str(self.data_length))
  26. print("Data Flow: "+ str(self.data_flow))
  27. print('')
  28.  
  29. def listen(self):
  30. try:
  31. print('')
  32. print('@Conx:listen')
  33. print("Creating New Socket...")
  34. self.s = socket.socket(self.family,self.protocol)
  35. print("Binding:"+ str(self.addr) + " At: "+ str(self.port) + '...')
  36. self.s.bind((self.addr,self.port))
  37. self.lis = True
  38. self.s.listen(int(input("Enter no of connection to listen for> ")))
  39. print("Started Listning")
  40. except:
  41. print("Some Error Occurred")
  42. print("Check settings... (Type 'status' to review)")
  43.  
  44. print("Waiting for an connection!")
  45. conn, addr_in = self.s.accept()
  46. print("Connection from: " + str(addr_in))
  47. trans = True
  48. while trans:
  49. if self.data_flow == 'Send_Only':
  50. self.get_data(conn)
  51. while trans:
  52. trans = self.snd(conn)
  53. elif self.data_flow == 'Send_Only+':
  54. while trans:
  55. trans = self.snd(conn)
  56. elif self.data_flow == 'Recv_Only':
  57. while True:
  58. self.get_data(conn)
  59. elif self.data_flow == 'Send_Recv':
  60. self.get_data(conn)
  61. trans = self.snd(conn)
  62. else:
  63. print("Invalid Data Flow!")
  64.  
  65. def get_data(self,conn):
  66. print('')
  67. print("Listing to Client...")
  68. data = conn.recv(self.data_length)
  69. print(str(data, self.encoding))
  70. print('')
  71.  
  72. def snd(self,conn):
  73. data = bytes(input("Enter Data to send> ")+'\n', self.encoding)
  74. try:
  75. conn.send(data)
  76. except:
  77. print("Some Error Occurred while sending data")
  78. print('')
  79. return False
  80. if str(data, self.encoding) == 'done':
  81. conn.close()
  82. print("Connection Closed")
  83. return False
  84. print("Data Sent...")
  85. print('')
  86. return True
  87.  
  88. def open(self):
  89. print('')
  90. print("@Creating Socket")
  91. self.s = socket.socket(self.family, self.protocol)
  92. print("Accessing: " + self.addr + ' At port: '+str(self.port))
  93. try:
  94. conn = self.s.connect((self.addr,self.port))
  95. print('Connection Established!')
  96. except:
  97. print("Error in establishing connection.")
  98. return False
  99.  
  100. trans = True
  101. if self.data_flow == 'Send_Only':
  102. while trans:
  103. trans = self.snd(self.s)
  104. elif self.data_flow == 'Send_Only+':
  105. while trans:
  106. trans = self.snd(self.s)
  107. elif self.data_flow == 'Recv_Only':
  108. while True:
  109. self.get_data(self.s)
  110. elif self.data_flow == 'Send_Recv':
  111. while trans:
  112. trans = self.snd(self.s)
  113. self.get_data(self.s)
  114. else:
  115. print("Invalid Data Flow!")
  116.  
  117. def close(self):
  118. try:
  119. print('Closing Socket if open!')
  120. self.s.close()
  121. print("Socket Closed")
  122. except:
  123. print("No socket open! Exiting!")
  124.  
  125.  
  126.  
  127. sock_obj = conx(socket.AF_INET,socket.SOCK_STREAM)
  128. print('''
  129. JET-SOCKET TESTER
  130. Simple But Powerful Sock Tester
  131. Developed By: Abrar Ajaz Wani
  132. E-Mail: abhaywani114@gmail.com
  133. ''')
  134. while True:
  135. print('')
  136. cmd = str(input("Please Enter a command> "))
  137.  
  138. if cmd == 'status':
  139. sock_obj.status()
  140. if cmd == 'target':
  141. target = str(input("Enter target's IP address: "))
  142. sock_obj.addr = target
  143. print('Target Updated...')
  144. if cmd == 'port':
  145. target = str(input("Enter Port: "))
  146. sock_obj.port = target
  147. print('Port Updated...')
  148. if cmd == 'family':
  149. target = str(input("Enter Socket Family: "))
  150. sock_obj.family = target
  151. print('Family Updated...')
  152. if cmd == 'protocol':
  153. target = str(input("Enter Socket Protocol: "))
  154. sock_obj.protocol = target
  155. print('Protocol Updated...')
  156. if cmd == 'buffer':
  157. sock_obj.data_length = int(input("Enter buffer size: "))
  158. print('Buffer Size Updated...')
  159. if cmd == 'encoding':
  160. sock_obj.encoding = str(input("Enter encoding: "))
  161. print("Encoding Updated...")
  162.  
  163. if cmd == 'help':
  164. print('''
  165. JET Help Page
  166. JET is simply a socket testing tool developed in python.
  167. Developer: Abrar Ajaz Wani
  168. E-mail: abhaywani114@gmail.com
  169. Facebook: @abhay.waniii.9
  170. _____________________________________
  171. Command -> Description
  172.  
  173. 1. status -> Review socket environment
  174. 2. target -> Change the address of socket
  175. 3. port -> Change the port of socket
  176. 4. family -> Change the socket family
  177. 5. protocol -> Change socket protocol
  178. 6. encoding -> Change data encoding
  179. 7. data_flow -> Change Data flow
  180. 8. L -> Start listning on a specified port
  181. 9. O -> Open a remote host
  182. 10. R -> Reset settings
  183.  
  184. ''')
  185.  
  186. if cmd == 'data_flow':
  187. sock_obj.data_flow = str(input("Enter Data-Flow [Send_Recv, Send_Only, Recv_Only,Send_Only+] "))
  188. print('Dara Flow Updated')
  189. if cmd == 'L':
  190. sock_obj.listen()
  191. if cmd == 'R':
  192. print('')
  193. print('@Resetting')
  194. print("Destroying existing settings...")
  195. del(sock_obj)
  196. print("Creating new environment")
  197. sock_obj = conx(socket.AF_INET, socket.SOCK_STREAM)
  198. if cmd == 'O':
  199. sock_obj.open()
  200. if cmd == 'exit':
  201. sock_obj.close()
  202. break
Add Comment
Please, Sign In to add comment