
Systemunabhängige Bibliothek für Paketerfassung und -filterung auf Benutzerebene. Bietet ein portables Framework für Netzwerküberwachung auf niedriger Ebene, Sicherheitsanalyse und Debugging auf mehreren Plattformen.
Um ein Sicherheitsproblem zu melden, senden Sie bitte eine E-Mail an [email protected].
Um Fehler und andere Probleme zu melden, Patches beizutragen, ein Feature anzufragen, allgemeines Feedback zu geben usw., siehe bitte die Richtlinien für Beiträge.
Das Dokumentationsverzeichnis enthält README-Dateien zu bestimmten Betriebssystemen und Optionen.
Anonymer Git-Zugriff ist verfügbar über:
formerly from Lawrence Berkeley National Laboratory
Network Research Group <[email protected]>
ftp://ftp.ee.lbl.gov/old/libpcap-0.4a7.tar.Z
Für einige Plattformen gibt es README.{system}-Dateien, die Probleme mit der Schnittstelle des Betriebssystems für die Paketerfassung auf diesen Plattformen behandeln, z. B. wie man die Unterstützung für diese Schnittstelle im Betriebssystem aktiviert, falls sie nicht standardmäßig eingebaut ist.
Die libpcap-Schnittstelle unterstützt einen Filtermechanismus, der auf der Architektur des BSD-Paketfilters basiert. BPF wird in dem Paper der Winter-Usenix 1993 ``The BSD Packet Filter: A New Architecture for User-level Packet Capture'' beschrieben (komprimiertes PostScript, gzipptes PostScript, PDF).
Obwohl die meisten Schnittstellen für die Paketerfassung eine gewisse Filterung im Kernel unterstützen, nutzt libpcap die Filterung im Kernel nur für die Anwendungsfälle, die BPF-Programme unterstützen, nämlich die BPF-Paketerfassungsschnittstelle, den Linux-Packet-Socket und die GNU/Hurd-Schnittstelle.
In allen anderen Fällen liest libpcap jedes Paket in den Benutzerraum und wertet es mithilfe des Filterprogramms aus, was zusätzlichen Overhead verursacht (insbesondere bei selektiven Filtern). Idealerweise würde libpcap BPF-Filter in ein Filterprogramm übersetzen, das mit dem zugrunde liegenden Kernel-Subsystem kompatibel ist, aber das ist nicht implementiert.
BPF ist Standard in NetBSD, FreeBSD, OpenBSD, DragonFly BSD, macOS, QNX und Solaris 11; eine ältere, modifizierte und undokumentierte Version ist Standard in AIX.
Linux hat eine Reihe von BPF-basierten Systemen, und libpcap unterstützt bisher keinen der eBPF-Mechanismen, obwohl es viele der speicherzugeordneten Empfangsmechanismen unterstützt. Weitere Informationen finden Sie im Linux-spezifischen README.
Es gibt jetzt eine Regel, um eine Shared Library zu erstellen, die unter anderem auf Linux und *BSD funktionieren sollte.
Sie setzt den Sonamen der Bibliothek auf libpcap.so.1; genau das sollte er sein, NICHT libpcap.so.1.x oder libpcap.so.1.x.y oder so ähnlich.
Wir haben über einen langen Zeitraum die Binärkompatibilität zwischen libpcap-Versionen aufrechterhalten; es gibt keinen Grund, ein mit libpcap verlinktes Binary an eine bestimmte Version von libpcap zu binden.