【发布时间】:2014-06-30 17:34:03
【问题描述】:
我是 pcap 库的新手,我正在构建一个程序来加载 pcap 文件并使用 winpcap 处理它以满足我的需要。
这是我的伪代码的一部分:
pcap_file= pcap_open_offline(pcap_path, errbuff);
while ( !EOF )
{
//read the next packet from pcap file
pcap_next_ex(pcap_file, &header, &data);
if ( the packet belongs to ETH->IP->UDP->RTP->H264 protocol)
process_packet(header, data);
}
我找到了 pcap_compile() 函数,但据我了解,这是用于实时捕捉。
由于我离线加载 pcap 文件,我很难找到类似的过滤功能。
如何过滤从 pcap 文件加载的数据包?过滤器应该只通过来自 ETH->IP->UDP->RTP->H264 协议的数据包。
【问题讨论】:
-
不清楚你的问题是什么。
-
嗨。抱歉,如果我没有正确解释自己。如何过滤从 pcap 文件加载的数据包?过滤器应该只通过来自 ETH->IP->UDP->RTP->H264 协议的数据包,谢谢。
-
据我记得,pcap 不在乎它是实时捕获还是来自离线文件,但我可能是错的。您可能应该阅读他们的手册。
-
Guy Harris here 说:“pcap_setfilter() 作用于你用 pcap_open_offline() 打开的 pcap_t,就像它作用于你用 pcap_open_live() 打开的 pcap_t 一样。 "