过滤pcap文件中的数据包
filtering packets from pcap file
我是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_compile()
函数,但从我的理解这是为了实时捕获。
不,它是用于实时捕获和从保存文件读取。
过滤器应该只通过ETH->IP->UDP->RTP->H264协议的报文。
使用pcap_compile()
不可能有这样的过滤器。
要识别RTP流量,您要么必须知道流量将使用哪些UDP端口,并基于此进行过滤,要么必须查看UDP有效载荷中的几个字段,并尝试猜测是否为RTP流量(并愿意与非-RTP数据包一起生活通过过滤器)。Wireshark有一个相当弱的启发式来识别运行在UDP之上的RTP;默认情况下不启用,因为它非常弱,可能会将非RTP流量识别为RTP流量。
对于H.264, Wireshark认识到基于SIP/SDP设置流量,这意味着它涉及到比pcap过滤器和更复杂的数据包解析,更重要的是,涉及到保持状态信息,这是不可能的使用pcap过滤器。
相关文章:
- 如何在 c++ 中将数据与文件流分离
- boost::asio UDP 广播客户端仅接收"fast"数据包
- 如何使用发送数据包所花费的时间计算两个节点之间的距离?
- 发送固定大小的 UDP 数据包
- pcap_handler回调仅在使用 NPCAP v0.9991 时包含空数据包
- 在 c++ 中解析数据包数据的最佳方法是什么?
- 接受函数在发送数据包时等待
- TCP-Server以数据包结构(非Java客户端)发送文件
- 可视化 将 TCP 服务器数据包保存到 C++ 中的文件
- 数据包大小(每数据包 mBytes)或核心音频中 AAC 文件的比特率
- 获取 PCAP 文件中数据包的 IP 地址
- 如何在 C++ 中读取 PCAP 文件以获取数据包信息
- 如何在C++中分析来自流量转储文件的数据包信息
- 使用SFML TCP套接字和数据包破坏文件
- 使用libpcap,是否有一种方法可以确定从脱机pcap文件捕获的数据包的文件偏移量
- 如何在两个文本文件中计算不同的数据包编号
- 从多个文件描述符异步接收UDP数据包
- 过滤pcap文件中的数据包
- 从pcap文件中获取上一个数据包
- 获取pcap文件的第一个数据包