pkts=sniff(offline='1.pcap',filter='tcp and tcp.flags.syn==1 and tcp.flags.ack==1')
pkts.summary()
没有过滤,输出包含所有数据包,如何过滤?
答案 0 :(得分:0)
查看scappy filter usage,检查语法是否为:
pkts=sniff(offline='1.pcap',filter='tcp and tcp.flags.syn 1 and tcp.flags.ack 1')
您可能还需要添加lambda函数
pkts=sniff(offline='1.pcap',filter='tcp and tcp.flags.syn 1 and tcp.flags.ack 1',prn=lambda x:x.summary(), count=10)
但是,请注意issue 5146
当指定pcap文件来嗅探函数的离线参数时,如果过滤器参数提供了正确的BPF过滤器,则嗅探器不会应用任何过滤器。
该错误仍然悬而未决(使用possible pull request)。
答案 1 :(得分:0)
您可以将lfilter与lambda x:x.haslayer(TCP)
一起使用# TCP-Flags
FIN = 0x01
SYN = 0x02
RST = 0x04
PSH = 0x08
ACK = 0x10
URG = 0x20
ECE = 0x40
CWR = 0x80
pkts=sniff(offline='1.pcap',lfilter = lambda x: x.haslayer(TCP) and x[TCP].flags & SYN and x[TCP].flags & ACK, prn=lambda x:x.summary(), count=10)