Using Python
I want to continuously read the packets one-by-one in the same order they are written into, from a pcap
file that is being continuously written by tshark
(or a piece of code written in libpcap
or pfring
) live capture.
To test this I used tshark
and scapy
in Python in the following way.
@terminal1: ping -i 5 192.168.1.10
@terminal2: tshark -f "icmp" -a filesize:1000 -w ping_live.pcap
Packet reader in Python intended to read each unread packet at every 5 seconds (not the whole set of packets every time). But it will not wait for the next set of packets that are about to written after 5 second, and it exits.
from scapy.all import *
def process_packet(packet):
print(packet.summary())
sniff(offline="ping_live.pcap", prn=process_packet, store=0)
print("sniff complete, exiting")
Then I tried to put while True:
loop around the sniff
method, but it is not reading only the next unread packet, instead reading whole file again and again.
What is the solution for my requirement (not limited to scapy
)?
Thank you
question from:
https://stackoverflow.com/questions/65842911/continuously-read-pcap-file-in-python-that-being-written-continuously 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…