我正在制作一个可以扫描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()
希望您能帮助我,谢谢您!