2011-07-29 21 views
1

libpcapライブラリを使用してWireSharkから生成された.pcapファイルからのRTPパケットのみを解析します。
libpcapを使用してパケットを取得するデバイスで動作する例がありますが、.pcapファイルから特定のパケットを抽出できる例は見つかりません。libapcapを使ってpcapファイルを解析する方法。

このような例やこれを実行するサンプルコードを持っている人は誰でも知っているでしょう。

ありがとうございました。

答えて

2

のlibpcapは、捕捉ループを開始する前に(例えば、コードとhere説明)pcap_compilepcap_setfilterパケットをフィルタリングする機能を使用します。フィルタの構文は、man page for TCPDump

で説明されています。RTPパケットをフィルタリングすることは、標準ポート経由で送信されず、プロトコルを検出するための他の便利な方法がないため、さらに困難です。 RTPに使用されるポートは、RTPセットアップに先立つ制御チャネルプロトコル(SIPなど)によってネゴシエートされます。 This exampleには、SIPメッセージが含まれています。rport = 5060は、RTPに使用されるUDPポートを示します(下記参照)。

RTPの検出は、従ってにフィルタリングするRTPポートを把握するためにSIPプロトコルパケット(または他のシグナリングプロトコルを検査する必要があります。応答を

SIP/2.0 200 OK 
Call-ID: [email protected] 
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 
+0

おかげで、私は静的.pcapファイルを解析するつもりどうすればいいですか? 'pcap_compile'関数に直接フィルターオプションがあるのでしょうか、それともBPFを使用する必要がありますか?BPFなら、どのようにプロトコルを指定しますか? – psp1

+0

'UDPポート5060 'を使ってSIPトラフィックをフィルタリングすることができます。tcpdump -rを使用して静的なキャプチャファイルから読み取ることができます – rupello

関連する問題