1

.pcapライブラリを使用してWireSharkから生成されたファイルからのRTPパケットのみを解析したいと思いlibpcapます。
を使用してパケットを取得するためにデバイスで機能する例をいくつか見てきましたlibpcapが、ファイルから特定のパケットを抽出できる例を見つけることができません.pcap

誰もがそのような例へのリンクを知っているか、これを行うためのサンプルコードを持っている人は誰でも知っています。

ありがとう。

4

1 に答える 1

2

libpcapは、関数pcap_compileおよびpcap_setfilterここではサンプルコードで説明)を使用して、キャプチャループを開始する前にパケットをフィルタリングします。フィルタの構文については、TCPDumpのマニュアルページで説明されています。

RTPパケットは標準ポートを介して送信されず、プロトコルを検出するための他の便利な方法がないため、RTPパケットのフィルタリングにはさらに課題があります。RTPに使用されるポートは、RTPセットアップの前に制御チャネルプロトコル(SIPなど)によってネゴシエートされます。この例には、行rport = 5060がRTPに使用されるUDPポートを提供するSIPメッセージが含まれています(以下を参照)。

したがって、RTPを検出するには、SIPプロトコルパケット(または他のシグナリングプロトコルを調べて、フィルタリングするRTPポートを特定する必要があります。

SIP/2.0 200 OK
Call-ID: 29858147-465b0752@29858051-465b07b2
Contact: pel<sip:35104723@192.168.1.2:5060;line=7d36558f31367051>;q=0.500;expires=1200
CSeq: 6 REGISTER
From: <sip:35104723@sip.cybercity.dk>;tag=659abf
P-Associated-URI: <sip:35104723@sip.cybercity.dk>
To: <sip:35104723@sip.cybercity.dk>;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
于 2011-07-29T13:21:55.353 に答える