
Libreria indipendente dal sistema per la cattura e il filtraggio di pacchetti a livello utente. Fornisce un framework portabile per il monitoraggio di rete a basso livello, l'analisi della sicurezza e il debug su più piattaforme.
Per segnalare un problema di sicurezza, inviare un'e-mail a [email protected].
Per segnalare bug e altri problemi, contribuire patch, richiedere una funzionalità, fornire feedback generale ecc., consultare le linee guida per i contributi.
La directory della documentazione contiene file README su specifici sistemi operativi e opzioni.
Git anonimo disponibile via:
https://github.com/the-tcpdump-group/libpcap.git
Questa directory contiene il codice sorgente di libpcap, un'interfaccia indipendente dal sistema per la cattura di pacchetti a livello utente. libpcap fornisce un framework portabile per il monitoraggio di rete di basso livello. Le applicazioni includono la raccolta di statistiche di rete, il monitoraggio della sicurezza, il debug di rete, ecc. Poiché quasi ogni fornitore di sistemi fornisce un'interfaccia diversa per la cattura dei pacchetti, e poiché abbiamo sviluppato diversi strumenti che richiedono questa funzionalità, abbiamo creato questa API indipendente dal sistema per semplificare il porting e per evitare la necessità di diversi moduli di cattura pacchetti dipendenti dal sistema in ciascuna applicazione.
formerly from Lawrence Berkeley National Laboratory
Network Research Group <[email protected]>
ftp://ftp.ee.lbl.gov/old/libpcap-0.4a7.tar.Z
Per alcune piattaforme ci sono file README.{sistema} che discutono problemi
relativi all'interfaccia del sistema operativo per la cattura di pacchetti su
tali piattaforme, come abilitare il supporto per tale interfaccia nel sistema
operativo, se non è integrata per impostazione predefinita.
L'interfaccia di libpcap supporta un meccanismo di filtraggio basato sull'architettura del filtro pacchetti BSD. BPF è descritto nell'articolo Usenix dell'inverno 1993 ``The BSD Packet Filter: A New Architecture for User-level Packet Capture'' (PostScript compresso, PostScript gzippato, PDF).
Sebbene la maggior parte delle interfacce di cattura pacchetti supporti un filtraggio nel kernel, libpcap utilizza il filtraggio nel kernel solo per i casi d'uso che supportano i programmi BPF, ovvero l'interfaccia di cattura pacchetti BPF, il packet socket Linux e l'interfaccia GNU/Hurd.
In tutti gli altri casi libpcap legge ogni pacchetto nello spazio utente e lo valuta usando il programma di filtro, il che comporta un sovraccarico aggiuntivo (soprattutto per filtri selettivi). Idealmente, libpcap tradurrebbe i filtri BPF in un programma di filtro compatibile con il sottosistema del kernel sottostante, ma questo non è implementato.
BPF è standard in NetBSD, FreeBSD, OpenBSD, DragonFly BSD, macOS, QNX e Solaris 11; una versione precedente, modificata e non documentata è standard in AIX.
Linux ha una serie di sistemi basati su BPF e libpcap non supporta ancora nessuno dei meccanismi eBPF, sebbene supporti molti dei meccanismi di ricezione con memoria mappata. Vedere il README specifico per Linux per maggiori informazioni.
Ora c'è una regola per creare una libreria condivisa, che dovrebbe funzionare su Linux e *BSD, tra le altre piattaforme.
Imposta il soname della libreria su libpcap.so.1; è così che dovrebbe
essere, NON libpcap.so.1.x o libpcap.so.1.x.y o qualcosa del genere.
Abbiamo mantenuto la compatibilità binaria tra le release di libpcap per parecchio tempo; non c'è motivo di legare un binario collegato con libpcap a una release specifica di libpcap.