libpcap
ライブラリを使用してWireSharkから生成された.pcap
ファイルからのRTPパケットのみを解析します。
libpcap
を使用してパケットを取得するデバイスで動作する例がありますが、.pcap
ファイルから特定のパケットを抽出できる例は見つかりません。libapcapを使ってpcapファイルを解析する方法。
このような例やこれを実行するサンプルコードを持っている人は誰でも知っているでしょう。
ありがとうございました。
libpcap
ライブラリを使用してWireSharkから生成された.pcap
ファイルからのRTPパケットのみを解析します。
libpcap
を使用してパケットを取得するデバイスで動作する例がありますが、.pcap
ファイルから特定のパケットを抽出できる例は見つかりません。libapcapを使ってpcapファイルを解析する方法。
このような例やこれを実行するサンプルコードを持っている人は誰でも知っているでしょう。
ありがとうございました。
のlibpcapは、捕捉ループを開始する前に(例えば、コードとhere説明)pcap_compileとpcap_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
おかげで、私は静的.pcapファイルを解析するつもりどうすればいいですか? 'pcap_compile'関数に直接フィルターオプションがあるのでしょうか、それともBPFを使用する必要がありますか?BPFなら、どのようにプロトコルを指定しますか? – psp1
'UDPポート5060 'を使ってSIPトラフィックをフィルタリングすることができます。tcpdump -rを使用して静的なキャプチャファイルから読み取ることができます – rupello