Конечно, это так.Посмотрите документацию wrpcap()
.
По сути, вы просто создадите функцию обратного вызова, которая принимает пакеты и выполняет действия.Вот очень простой пример, который не обязательно должен быть функциональным.(Я пишу это на лету здесь). Это должно сохранять файл cap каждые 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)