Guest User

Untitled

a guest
Aug 23rd, 2018
399
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.08 KB | None | 0 0
  1. import socket
  2.  
  3.  
  4. class Network:
  5.  
  6.     def __init__(self, limit=65565):
  7.         # the public network interface
  8.         self.HOST = socket.gethostbyname(socket.gethostname())
  9.  
  10.         try:
  11.             # create a raw socket and bind it to the public interface
  12.             s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP)
  13.         except s.error as err:
  14.             print('socket creation failed with error{}'.format(err))
  15.  
  16.         # prevent socket from being left in TIME_WAIT state, enabling reuse
  17.         s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
  18.  
  19.         s.bind((self.HOST, 0))
  20.  
  21.         # Include IP headers
  22.         s.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1)
  23.  
  24.         # receive all packages
  25.         s.ioctl(socket.SIO_RCVALL, socket.RCVALL_ON)
  26.  
  27.         self.socket = s
  28.         self.limit = limit
  29.  
  30.  
  31.     def get_raw_data(self):
  32.         raw_index = 0
  33.         return self.socket.recvfrom(self.limit)[raw_index]
  34.  
  35.  
  36.     def close(self):
  37.         self.socket.ioctl(socket.SIO_RCVALL, socket.RCVALL_OFF)
  38.         self.socket.close()
Advertisement
Add Comment
Please, Sign In to add comment