The capture file appears to be damaged or corrupt.

背景

通过libpcap库对数据包进行处理,提取离线pcap文件中的部分内容保存为新的pcap文件,使用函数:pcap_open_offline( );pcap_loop( )等。

错误

The capture file appears to be damaged or corrupt.
(pcap: File has 2944323888-byte packet, bigger than maximum of 262144)

原因

原pcap数据包中pcap头(结构体struct pcap_pkthdr)中的caplen值错误,或者过大。

解决

写入新的pcap文件之前将pcap头重新赋值
pkthdr.caplen=packetlen=eth_len+ip_total_len

你可能感兴趣的:(纠错院)