Je voudrais incrémenter un compteur des critères. Pour cela, j'ai utilisé la fonction sorted et groupby

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
 
from itertools import groupby
 
def tcp_seq(p):
    return p['TCP'].seq
 
def tcp_ack(p):
    return p['TCP'].ack
 
def groups_by_seq(s):
    x = sorted((p for p in s if p.haslayer('TCP')), key=tcp_seq)
    y = [(k, list(g)) for k, g in groupby(x, key=tcp_seq)]
    return [(seq, group) for seq, group in y if len(group) > 1]
 
def duplication_pkt_count(s, s_ip, c_ip):
    sCount = 0
    cCount = 0
 
    for seq, group in groups_by_seq(s):
        for p in group:
            if p.haslayer(IP):
                if (p[IP].src == s_ip):
                    sCount += 1
                if (p[IP].src == c_ip):
                    cCount += 1
    return (sCount, cCount)
Maintenant je veux que mon compteur s'incrémente selon deux critères: quand on trouve et le numéro de tcp.seq et le numéro ack en double. Quand j'ai tcp.seq et tcp.ack en double le compteur s'incrémente. Je ne sais pas comment ajouter un second critère dans groupby. Une idée ?