Exemplo n.º 1
0
    def __init__(self, network_adapter, packet_size=65536, promiscious=True, wait_period=10):
        NetworkCapture.__init__(self)
        if network_adapter not in self.get_interfaces():
            raise PCapInvalidNetworkAdapter("The network adapter specified '%s' does\
not exist or access is denied." % network_adapter)
        # pcap_open_live wants an int not a bool so must cast.
        promisc = 1 if promiscious else 0
        self._pcap_t = winpcapy.pcap_open_live(network_adapter, packet_size,
            promisc, wait_period, self._error_buffer)
Exemplo n.º 2
0
        def bind(self, tuple):
            """
			bind socket to a given interface/packet type pair
			"""
            # fp = pcap_open_live(sys.argv[1],65536,1,1000,errbuf)
            self._interface = tuple[0]
            self._ethertype = tuple[1]
            self._fp = capy.pcap_open_live(
                self._interface, self._so_snaplen, self._so_promicious, self._so_timeout, self._errbuf
            )
            if not bool(self._fp):
                raise Exception("unable to open interface %s for packet capture." % self._interface)
Exemplo n.º 3
0
 def __enter__(self):
     errbuf = ctypes.create_string_buffer(winpcapy.PCAP_ERRBUF_SIZE)
     self._fp = winpcapy.pcap_open_live(
         self._iface.encode('utf-8'),
         65536,
         1,
         self._timeout,
         errbuf,
     )
     if self._fp is None:
         raise RuntimeError('pcap_open_live failed: %s' % errbuf.value)
     return self
Exemplo n.º 4
0
 def bind(self, tuple):
     '''
     bind socket to a given interface/packet type pair
     '''
     #fp = pcap_open_live(sys.argv[1],65536,1,1000,errbuf)
     self._interface = tuple[0]
     self._ethertype = tuple[1]
     self._fp = capy.pcap_open_live(self._interface, self._so_snaplen,
                                    self._so_promicious,
                                    self._so_timeout, self._errbuf)
     if not bool(self._fp):
         raise Exception(
             'unable to open interface %s for packet capture.' %
             self._interface)
Exemplo n.º 5
0
 def startCapture(self):
     self._clear()
     packet_handler=PHAND(self._packet_handler)
     ## Jump to the selected adapter
     self.nif_mng.find_devices()
     dev=self.nif_mng.devices
     for i in range(0, self.nif_mng.get_selected_devId() - 1):
         dev = dev.contents.next
         print i
     ## Open the device
     ## Open the adapter
     dev = dev.contents
     adhandle = pcap_open_live(dev.name,65536,1,1000,self.nif_mng.errbuf)
     if (adhandle == None):
         msg = "\nUnable to open the adapter. %s is not supported by Pcap-WinPcap\n" % dev.contents.name
         print(msg)
         logging.error(msg)
         ## Free the device list
         self.nif_mng.free_devices()
         sys.exit(-1)
     self.nif_mng.free_devices()
     pThread = Thread(target=pcap_loop, args=[adhandle, 0, packet_handler, None])
     pThread.daemon = True
     pThread.start()
     
     if self.set_text_listener is not None:
         self.set_text_listener("")
     cnt = 0
     while self.is_wait:
         cnt = cnt + 1
         if self.set_progress_listener is not None:
             self.set_progress_listener(cnt)
         time.sleep(0.1)
         if cnt > 100:
             break
     if self.set_text_listener is not None:
         self.set_text_listener(u'測定終了!')
     pcap_breakloop(adhandle)
     pcap_close(adhandle)
     if (self.fleet_mng is not None) and (self.ship_mng is not None):
         return ArmyManager(self.fleet_mng, self.ship_mng)
     return None
Exemplo n.º 6
0
 def __init__(self, usePcap = False):
     self.Buffer = ''
     self.usPcap = usePcap
     self.PyVer2 = platform.python_version()[0]=='2'
     if not self.usPcap:
         try:
             self.Socket = socket.socket(socket.AF_INET,socket.SOCK_RAW)#,socket.IPPROTO_ICMP)
             self.Socket.setsockopt(socket.IPPROTO_IP,socket.IP_HDRINCL,1)
             self.Socket.setsockopt(socket.SOL_SOCKET,socket.SO_SNDTIMEO,1000)
         except socket.error as e:
             #self.Socket.close()
             raise MySocketError(e)
     else:
         from winpcapy import pcap_t,PCAP_ERRBUF_SIZE,pcap_open_live,PCAP_OPENFLAG_PROMISCUOUS
         self.Adapter = b'rpcap://\Device\NPF_{C224DE63-2D6E-4812-A601-827B3BF2E962}'
         self.Pcap_t = pcap_t
         self.ErrBuf = create_string_buffer(PCAP_ERRBUF_SIZE)
         self.Pcap_t = pcap_open_live(self.Adapter,65536,PCAP_OPENFLAG_PROMISCUOUS,1000,self.ErrBuf)
         if not bool(self.Pcap_t):
             print("Unable to open the adapter. It is not supported by WinPcap")
     print("__init__ OK !!!")
Exemplo n.º 7
0
def restart_handlers():
    global DEV0HANDLER, DEV1HANDLER

    DEV0HANDLER = winpcapy.pcap_open_live(DEV0, 65536, 0, 1000, ERRBUF)
    DEV1HANDLER = winpcapy.pcap_open_live(DEV1, 65536, 0, 1000, ERRBUF)
Exemplo n.º 8
0
STEGSCENAR_FOLDER = 'steg'
APPLISCENAR_FOLDER = 'appli'
SCENARIO_NAME = None

# PCAP VARS

ERRBUF = winpcapy.create_string_buffer(winpcapy.PCAP_ERRBUF_SIZE)

DEV0 = netconf.DEVICE1
DEV1 = netconf.DEVICE2
DEV0MAC = netconf.DEV1MAC
DEV1MAC = netconf.DEV2MAC
DEV0IP = netconf.DEV1IP
DEV1IP = netconf.DEV2IP

DEV0HANDLER = winpcapy.pcap_open_live(DEV0, 65536, 0, 1000, ERRBUF)
DEV1HANDLER = winpcapy.pcap_open_live(DEV1, 65536, 0, 1000, ERRBUF)

# BUFFER VARS

DEV0RBUFFER = multiprocessing.Queue(
)  # buffer entre readingspider et craftspider
DEV0MBUFFER = multiprocessing.Queue(
)  # buffer entre craftspider et middlespider
DEV0CBUFFER = multiprocessing.Queue(
)  # buffer entre applispider et craftspider
DEV1WBUFFER = multiprocessing.Queue(
)  # buffer entre middlespider et writing spider

DEV1RBUFFER = multiprocessing.Queue(
)  # buffer entre readingspider et craftspider
Exemplo n.º 9
0
def restart_handlers():
    global DEV0HANDLER, DEV1HANDLER
    
    DEV0HANDLER = winpcapy.pcap_open_live(DEV0,65536,0,1000,ERRBUF)
    DEV1HANDLER = winpcapy.pcap_open_live(DEV1,65536,0,1000,ERRBUF)
Exemplo n.º 10
0
STEGSCENAR_FOLDER = 'steg'
APPLISCENAR_FOLDER ='appli'
SCENARIO_NAME = None

# PCAP VARS

ERRBUF = winpcapy.create_string_buffer(winpcapy.PCAP_ERRBUF_SIZE)

DEV0 = netconf.DEVICE1
DEV1 = netconf.DEVICE2
DEV0MAC = netconf.DEV1MAC
DEV1MAC = netconf.DEV2MAC
DEV0IP = netconf.DEV1IP
DEV1IP = netconf.DEV2IP

DEV0HANDLER = winpcapy.pcap_open_live(DEV0,65536,0,1000,ERRBUF)
DEV1HANDLER = winpcapy.pcap_open_live(DEV1,65536,0,1000,ERRBUF)

# BUFFER VARS

DEV0RBUFFER = multiprocessing.Queue() # buffer entre readingspider et craftspider
DEV0MBUFFER = multiprocessing.Queue() # buffer entre craftspider et middlespider
DEV0CBUFFER = multiprocessing.Queue() # buffer entre applispider et craftspider
DEV1WBUFFER = multiprocessing.Queue() # buffer entre middlespider et writing spider

DEV1RBUFFER = multiprocessing.Queue() # buffer entre readingspider et craftspider
DEV1MBUFFER = multiprocessing.Queue() # buffer entre craftspider et middlespider
DEV1CBUFFER = multiprocessing.Queue() # buffer entre applispider et craftspider
DEV0WBUFFER = multiprocessing.Queue() # buffer entre middlespider et writing spider

DEV0ABUFFER = multiprocessing.Queue() # buffer interne application