Я делаю IDS, которая сканирует пакеты TCP и UDP, потому что я новичок, который хочет быть продвинутым в python, но сейчас я застрял.Я не знаю, как подсчитать общее количество пакетов между исходным и целевым IP, если они встречаются несколько раз.
Источник A -> Dest B
Источник A -> Dest B
Источник A -> Dest C
Источник B ->Dest C
Источник B -> Dest C
Источник A -> Dest C
Я хочу получить счетчик всех пакетов между источником A и Dest B,От источника B до Dest 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()
Надеюсь, вы могли бы помочь мне, спасибо заранее!