如何使用 libpcap 解析 pcap 文件。
我只想解析使用 libpcap
库从 WireShark 生成的 .pcap
文件中的 RTP 数据包。
我已经看到许多在设备上使用 libpcap 获取数据包的示例,但我找不到任何可以从 .pcap 文件中提取特定数据包的示例。
任何人都知道此类示例的链接或任何拥有执行此操作的示例代码的人。
谢谢。
I want to parse only RTP packets from a .pcap
file generated from WireShark using libpcap
library.
I have seen number of example that works on device to get the packets using libpcap
but i am not able to find any example that can extract specific packets from the .pcap
file.
anyone knows link to such examples or anyone having sample code for doing this.
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
libpcap 使用函数 pcap_compile 和 pcap_setfilter (描述为 这里带有示例代码)在开始捕获循环之前过滤数据包。过滤器语法在 TCPDump 手册页中进行了描述。
过滤 RTP 数据包提出了进一步的挑战,因为它们是不通过标准端口发送,并且没有其他方便的方法来检测协议。用于 RTP 的端口由 RTP 设置之前的控制通道协议(例如 SIP)协商。 此示例包含一条 SIP 消息,其中行rport=5060 给出用于 RTP 的 UDP 端口(见下文)。
因此,RTP 检测需要检查 SIP 协议数据包(或其他信令协议,以确定要过滤的 RTP 端口)。
libpcap uses the functions pcap_compile and pcap_setfilter (described here with example code) to filter packets before starting the capture loop. The filter syntax is described in the man page for TCPDump
Filtering RTP packets presents a further challenge as they are not sent over a standard port and there is no other convenient method for detecting the protocol. The ports used for RTP are negotiated by the the control channel protocol (such as SIP) preceding the RTP setup. This example contains a SIP message where the line rport=5060 gives the UDP port used for RTP (see below).
Detection of RTP therefore requires inspecting the SIP protocol packets (or other signalling protocol to figure out the RTP ports to filter on.