ai-nids-backend / flow_builder.py
CodebaseAi's picture
deploy: updated backend structure and ignored frontend
87f8e11
raw
history blame contribute delete
899 Bytes
# flow_builder.py
from collections import defaultdict
def build_flows(events):
flows = defaultdict(lambda: {
"src_ip": "",
"dst_ip": "",
"sport": "",
"dport": "",
"proto": "",
"packets": 0,
"bytes": 0,
"first_seen": "",
"last_seen": "",
})
for e in events:
key = (e["src_ip"], e["dst_ip"], e["sport"], e["dport"], e["proto"])
f = flows[key]
f["src_ip"] = e["src_ip"]
f["dst_ip"] = e["dst_ip"]
f["sport"] = e["sport"]
f["dport"] = e["dport"]
f["proto"] = e["proto"]
f["packets"] += 1
f["bytes"] += 1500 # approximation (or use real payload length if available)
# Update timestamps
if not f["first_seen"]:
f["first_seen"] = e.get("time")
f["last_seen"] = e.get("time")
return list(flows.values())