如何使用 libpcap 解析 pcap 文件。

发布于 2024-11-26 20:13:25 字数 204 浏览 1 评论 0原文

我只想解析使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

诗笺 2024-12-03 20:13:25

libpcap 使用函数 pcap_compilepcap_setfilter (描述为 这里带有示例代码)在开始捕获循环之前过滤数据包。过滤器语法在 TCPDump 手册页中进行了描述。

过滤 RTP 数据包提出了进一步的挑战,因为它们是不通过标准端口发送,并且没有其他方便的方法来检测协议。用于 RTP 的端口由 RTP 设置之前的控制通道协议(例如 SIP)协商。 此示例包含一条 SIP 消息,其中行rport=5060 给出用于 RTP 的 UDP 端口(见下文)。

因此,RTP 检测需要检查 SIP 协议数据包(或其他信令协议,以确定要过滤的 RTP 端口)。

SIP/2.0 200 OK
Call-ID: 29858147-465b0752@29858051-465b07b2
Contact: pel<sip:[email protected]:5060;line=7d36558f31367051>;q=0.500;expires=1200
CSeq: 6 REGISTER
From: <sip:[email protected]>;tag=659abf
P-Associated-URI: <sip:[email protected]>
To: <sip:[email protected]>;tag=00-04087-1701bae7-76fb74995
Via: SIP/2.0/UDP 192.168.1.2;received=80.230.219.70;rport=5060;branch=z9hG4bKnp6658824-465059f1192.168.1.2

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.

SIP/2.0 200 OK
Call-ID: 29858147-465b0752@29858051-465b07b2
Contact: pel<sip:[email protected]:5060;line=7d36558f31367051>;q=0.500;expires=1200
CSeq: 6 REGISTER
From: <sip:[email protected]>;tag=659abf
P-Associated-URI: <sip:[email protected]>
To: <sip:[email protected]>;tag=00-04087-1701bae7-76fb74995
Via: SIP/2.0/UDP 192.168.1.2;received=80.230.219.70;rport=5060;branch=z9hG4bKnp6658824-465059f1192.168.1.2
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文