我试图转储数据包通过Scapy的sniff
功能,每10秒钟无济于事捕获的文件。
这是可能与像tcpdump的:tcpdump -s 0 -i <interface> -G 10 -w <output.pcap>
。 G
标志是rotate_seconds。
这是实现与Scapy的?
当然是的。看一看在wrpcap()
文档。
从本质上讲,你可以简单的构建接收数据包,并采取行动的回调函数。这里是一个非常简单的例子,不一定拟功能。 (我在飞行写在这里),这应该保存一个帽文件中每100包。你只需要改变的逻辑依据,而不是基于分组计数时间。
#!/usr/bin/env python
from scapy import sniff
pendingPackets = []
baseFilename = "capture-"
totalPackets = 0
def handle_packet(packet):
pendingPackets.append(packet)
totalPackets += 1
if len(pendingPackets) >= 100:
filename = baseFilename + str(totalPackets) + ".pcap"
wrpcap(filename, pendingPackets)
pendingPackets = []
sniff(filter="ip", prn=handle_packet)