Ejemplo n.º 1
0
    def store_ip(self, pkt: Packet):
        if pkt.haslayer(IP):
            src, dst = pkt[IP].src, pkt[IP].dst
        elif pkt.haslayer(IPv6):
            src, dst = pkt[IPv6].src, pkt[IPv6].dst
        else:
            return

        if not ipaddress.ip_address(src).is_global:
            return

        self.sniffed += 1
        self.total_bytes += len(pkt.__bytes__())
        if src not in self.seen_sources:
            self.seen_sources[src] = (1, len(pkt.__bytes__()))
            logging.info(f'Sniffed source: {src} -> {dst}')
        else:
            count, byte_count = self.seen_sources[src]
            self.seen_sources[src] = count + 1, byte_count + len(
                pkt.__bytes__())