libpcap utilise les fonctions pcap_compile et pcap_setfilter (décrit here avec le code d'exemple) pour filtrer les paquets avant de commencer la boucle de capture. La syntaxe du filtre est décrite dans le man page for TCPDump
Filtrer les paquets RTP présente un autre défi car ils ne sont pas envoyés sur un port standard et il n'y a pas d'autre méthode pratique pour détecter le protocole. Les ports utilisés pour RTP sont négociés par le protocole de canal de contrôle (tel que SIP) précédant l'installation RTP. This example contient un message SIP où la ligne rport = 5060 indique le port UDP utilisé pour RTP (voir ci-dessous).
La détection de RTP nécessite donc l'inspection des paquets de protocole SIP (ou autre protocole de signalisation pour comprendre les ports RTP pour filtrer.
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
Merci pour la réponse, je vais analyser le fichier .pcap statique afin Comment puis-je commencer avec, est-il une option de filtre direct à la fonction 'pcap_compile' ou dois-je utiliser BPF pour cela.Si BPF alors comment puis-je spécifier le protocole? – psp1
vous passeriez un filtre BPF comme 'port UDP 5060 'pour filtrer le trafic SIP Vous pouvez essayer ceci en utilisant tcpdump -r pour lire depuis votre fichier de capture statique – rupello