计数两个IP之间的数据包

时间:2019-02-21 15:31:39

标签: python python-3.x python-2.7 scapy

我正在制作一个可以扫描TCP和UDP数据包的IDS,因为我是一个想在python上进行高级学习的初学者,但是现在我有点卡住了。如果源IP和目标IP出现多次,我不知道如何计算它们的总数。

来源A->目标B

来源A->目标B

来源A->目标C

来源B->目标C

来源B->目标C

来源A->目标C

我希望统计从源A到目标B,从源B到目标C等之间的所有数据包的数量,以便更轻松地将其存储在数据库中。这是我到目前为止的代码。

  def sniffPackets(self,packet):

    #scanning IP packets
    if packet.haslayer(IP):
        pckt_src=packet[IP].src
        pckt_dst=packet[IP].dst
        print("Packet: SRC: %s  ==>  DST: %s  , TIME: %s"%(pckt_src,pckt_dst,str(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))), end=' ')

    #capturing TCP traffic
    if packet.haslayer(TCP):
        src_port=packet.sport
        dst_port=packet.dport
        print(", Protocol: [TCP], Port: %s --> %s, "%(src_port,dst_port), end='')
        print([type(self).__flags[x] for x in packet.sprintf('%TCP.flags%')])

    #capturing UDP traffic
    if packet.haslayer(UDP):
        src_port=packet.sport
        dst_port=packet.dport
        print(", Protocol: [UDP], Port: %s --> %s, "%(src_port, dst_port), end='')
        print("")
        print("")

    else:
        print()

希望您能帮助我,谢谢您!

0 个答案:

没有答案