class ScapySniffer(ScapyProtocol): def __init__(self, pcap_filename, *arg, **kw): self.pcapwriter = PcapWriter(pcap_filename, *arg, **kw) def packetReceived(self, packet): self.pcapwriter.write(packet) def close(self): self.pcapwriter.close()
def scapy_io(f_in,f_out): f = PcapReader(f_in) o = PcapWriter(f_out) pkt = f.read_packet() while pkt is not None: o.write(pkt) pkt = f.read_packet() f.close() o.close()
def scapy_io(f_in, f_out): f = PcapReader(f_in) o = PcapWriter(f_out) pkt = f.read_packet() while pkt is not None: o.write(pkt) pkt = f.read_packet() f.close() o.close()
def writePCAP(src, dst, data): try: pktdump = PcapWriter(sOutfile + '.pcap', append=True, sync=True) pktinfo = Ether()/IP(src=src[0],dst=dst[0])/TCP(sport=src[1],dport=dst[1])/data pktdump.write(pktinfo) pktdump.close() except Exception as Error: #print(str(Error)) pass
def writePCAP(src, dst, data): try: pktdump = PcapWriter(sOutfile + '.pcap', append=True, sync=True) pktinfo = Ether() / IP(src=src[0], dst=dst[0]) / TCP( sport=src[1], dport=dst[1]) / data pktdump.write(pktinfo) pktdump.close() except Exception as Error: #print(str(Error)) pass
def _log_packets(self, file_path, client_mac): with self.log_lock: cap_writer = PcapWriter(file_path) if not self.wpa_handshakes[client_mac]['logged']: self.wpa_handshakes[client_mac]['logged'] = True for packet in self.wpa_handshakes[client_mac]['packets']: if Dot11Beacon not in packet: cap_writer.write(packet) cap_writer.close() cap_writer = PcapWriter(file_path, append=True) for packet in self.wpa_handshakes[client_mac]['packets']: if Dot11Beacon in packet: cap_writer.write(packet) cap_writer.close()
def _log_packets(self, file_path, client_mac): with self.log_lock: cap_writer = PcapWriter(file_path) if not self.wpa_handshakes[client_mac]['logged']: self.wpa_handshakes[client_mac]['logged'] = True for packet in self.wpa_handshakes[client_mac]['packets']: if Dot11Beacon not in packet: cap_writer.write(packet) cap_writer.close() cap_writer = PcapWriter(file_path, append = True) for packet in self.wpa_handshakes[client_mac]['packets']: if Dot11Beacon in packet: cap_writer.write(packet) cap_writer.close()
def foo(in_filename, out_filename): # open the input file for reading f = PcapReader(in_filename) # open the output file for writing o = PcapWriter(out_filename) # read the first packet from the input file p = f.read_packet() # while we haven't processed the last packet while p: layer = p.firstlayer() while not isinstance(layer, NoPayload): if (type(layer) is IPv6): new_layer = IP() del new_layer.ihl new_layer.ttl = layer.hlim new_layer.proto = layer.nh new_layer.src = ".".join(map(str, six2four(layer.src))) new_layer.dst = ".".join(map(str, six2four(layer.dst))) new_layer.add_payload(layer.payload) prev_layer = layer.underlayer del layer prev_layer.remove_payload() prev_layer.add_payload(new_layer) if type(prev_layer) is Ether: prev_layer.type = ETH_P_IP layer = new_layer if layer.default_fields.has_key('chksum'): del layer.chksum if layer.default_fields.has_key('len'): del layer.len # advance to the next layer layer = layer.payload # write the packet we just dissected into the output file o.write(p) # read the next packet p = f.read_packet() # close the input file f.close() # close the output file o.close()