Zurück zu den Updates
New releaseJul 23, 2026

PcapPlusPlus v26.07

Plattformübergreifende C++-Bibliothek für leistungsstarke Netzwerkpaket-Erfassung, -Parsen, -Erstellung und -Analyse. Unterstützt libpcap, DPDK, AF_XDP, PF_RING und beinhaltet TCP-Reassemblierung, TLS-Fingerprinting und Protokoll-Dekodierung.

Teilen

PcapPlusPlus Logo

GitHub Workflow Status GitHub Workflow Status Codecov OpenSSF Scorecard GitHub contributors

X Follow GitHub Repo stars

PcapPlusPlus ist eine plattformübergreifende C++-Bibliothek zum Erfassen, Analysieren und Erstellen von Netzwerkpaketen. Sie ist darauf ausgelegt, effizient, leistungsstark und einfach zu bedienen zu sein.

PcapPlusPlus bietet Dekodierungs- und Erstellungsfähigkeiten für eine große Vielfalt von Netzwerkprotokollen. Es bietet auch einfach zu bedienende C++-Wrapper für die gängigsten Paketverarbeitungs-Engines wie libpcap, WinPcap, Npcap, DPDK, eBPF AF_XDP, WinDivert und PF_RING.

Übersetzungen: Englisch · 正體中文 · 한국어 · 日本語 · Русский

Table Of Contents

Herunterladen

Sie können zwischen dem Herunterladen von der GitHub-Release-Seite, der Verwendung eines Paketmanagers oder dem Selbstbau von PcapPlusPlus wählen. Weitere Details finden Sie auf der Download-Seite der PcapPlusPlus-Website.

GitHub all releases

GitHub Release Seite

https://github.com/seladb/PcapPlusPlus/releases/latest

Homebrew

brew install pcapplusplus

Homebrew-Formel: https://formulae.brew.sh/formula/pcapplusplus

Vcpkg

Windows:

.\vcpkg install pcapplusplus

MacOS/Linux:

vcpkg install pcapplusplus

Vcpkg-Port: https://github.com/microsoft/vcpkg/tree/master/ports/pcapplusplus

Conan

conan install "pcapplusplus/[>0]@" -u

Das Paket in ConanCenter: https://conan.io/center/pcapplusplus

Selbst bauen

Klonen Sie das Git-Repository:

git clone https://github.com/seladb/PcapPlusPlus.git

Folgen Sie den Bauanweisungen für Ihre Plattform auf der Seite Build From Source der PcapPlusPlus-Website.

Pakete verifizieren

PcapPlusPlus-Releases, die neuer als v23.09 sind, werden mit GitHub-Attestation signiert. Alle Attestationen finden Sie hier. Sie können die Attestation dieser Pakete mit der GitHub-CLI verifizieren. Um Pakete zu verifizieren, folgen Sie den aktuellsten Anweisungen von gh attestation verify. Für einfache Anweisungen verwenden Sie den folgenden Befehl:

gh attestation verify <pfad-zur-paketdatei> --repository seladb/PcapPlusPlus

und Sie sollten die folgende Ausgabe in Ihrem Terminal sehen:

✓ Verification succeeded!

Funktionsübersicht

  • Paketerfassung durch einen einfach zu bedienenden C++-Wrapper für gängige Paketerfassungs-Engines wie libpcap, WinPcap, Npcap, Intel DPDK, eBPF AF_XDP, WinDivert, ntop’s PF_RING und Raw Sockets [Mehr erfahren]
  • Paketanalyse und -erstellung einschließlich detaillierter Analyse von Protokollen und Schichten, Paketerzeugung und -bearbeitung für eine große Vielfalt von Netzwerkprotokollen [Mehr erfahren]
  • Lesen und Schreiben von Paketen in/aus Dateien in den Formaten PCAP und PCAPNG [Mehr erfahren]
  • Paketverarbeitung mit Leitungsgeschwindigkeit durch einen effizienten und einfach zu bedienenden C++-Wrapper für DPDK, eBPF AF_XDP und PF_RING [Mehr erfahren]
  • Plattformübergreifende Unterstützung – PcapPlusPlus wird vollständig auf Linux, macOS, Windows, Android und FreeBSD unterstützt
  • Paketwiederzusammenstellung – unique Implementierung der TCP-Wiederzusammenstellung, die TCP-Neuübertragungen, außer der Reihe liegende TCP-Pakete und fehlende TCP-Daten umfasst, sowie IP-Fragmentierung und -Defragmentierung zum Erstellen und Wiederzusammenstellen von IPv4- und IPv6-Fragmenten [Mehr erfahren]
  • Paketfilterung, die die BPF-Filter von libpcap deutlich benutzerfreundlicher macht [Mehr erfahren]
  • TLS-Fingerprinting – eine C++-Implementierung von JA3 und JA3S TLS-Fingerprinting [Mehr erfahren]

Erste Schritte

Das Schreiben von Anwendungen mit PcapPlusPlus ist sehr einfach und intuitiv. Hier ist eine einfache Anwendung, die zeigt, wie man ein Paket aus einer PCAP-Datei liest und analysiert:

#include <iostream>
#include "IPv4Layer.h"
#include "Packet.h"
#include "PcapFileDevice.h"

int main(int argc, char* argv[])
{
    // open a pcap file for reading
    pcpp::PcapFileReaderDevice reader("1_packet.pcap");
    if (!reader.open())
    {
        std::cerr << "Error opening the pcap file" << std::endl;
        return 1;
    }

    // read the first (and only) packet from the file
    pcpp::RawPacket rawPacket;
    if (!reader.getNextPacket(rawPacket))
    {
        std::cerr << "Couldn't read the first packet in the file" << std::endl;
        return 1;
    }

    // parse the raw packet into a parsed packet
    pcpp::Packet parsedPacket(&rawPacket);

    // verify the packet is IPv4
    if (parsedPacket.isPacketOfType(pcpp::IPv4))
    {
        // extract source and dest IPs
        pcpp::IPv4Address srcIP = parsedPacket.getLayerOfType<pcpp::IPv4Layer>()->getSrcIPv4Address();
        pcpp::IPv4Address destIP = parsedPacket.getLayerOfType<pcpp::IPv4Layer>()->getDstIPv4Address();

        // print source and dest IPs
        std::cout << "Source IP is '" << srcIP << "'; Dest IP is '" << destIP << "'" << std::endl;
    }

    // close the file
    reader.close();

    return 0;
}

Weitere Informationen finden Sie auf der Seite Erste Schritte der PcapPlusPlus-Website. Diese Seite führt Sie in wenigen einfachen Schritten durch das Einrichten einer Anwendung.

API-Dokumentation

PcapPlusPlus besteht aus 3 Bibliotheken:

  1. Packet++ – eine Bibliothek zum Analysieren, Erstellen und Bearbeiten von Netzwerkpaketen
  2. Pcap++ – eine Bibliothek zum Abfangen und Senden von Paketen, die Netzwerk- und NIC-Informationen, Statistiken usw. bereitstellt. Es ist im Wesentlichen ein C++-Wrapper für Paketerfassungs-Engines wie libpcap, WinPcap, Npcap, DPDK, AF_XDP, WinDivert und PF_RING
  3. Common++ – eine Bibliothek mit einigen allgemeinen Code-Hilfsmitteln, die sowohl von Packet++ als auch von Pcap++ verwendet werden

Eine umfassende API-Dokumentation finden Sie im API-Dokumentationsbereich der PcapPlusPlus-Website. Wenn Ihnen Daten fehlen, kontaktieren Sie uns bitte.

Unterstützung mehrerer Plattformen

PcapPlusPlus wird derzeit auf Windows , Linux , macOS , Android und FreeBSD unterstützt. Bitte besuchen Sie die PcapPlusPlus-Website, um alle unterstützten Plattformen zu sehen, und lesen Sie den Abschnitt Herunterladen, um PcapPlusPlus auf Ihrer Plattform zu verwenden.

Unterstützte Netzwerkprotokolle

PcapPlusPlus unterstützt derzeit das Analysieren, Bearbeiten und Erstellen von Paketen der folgenden Protokolle:

Sicherungsschicht (L2)

  1. Cisco HDLC
  2. Ethernet II
  3. IEEE 802.3 Ethernet
  4. LLC (nur BPDU unterstützt)
  5. Null/Loopback
  6. Packet Trailer (auch Footer oder Padding genannt)
  7. PPPoE
  8. SLL (Linux cooked capture)
  9. SLL2 (Linux cooked capture v2)
  10. STP
  11. VLAN
  12. VXLAN
  13. Wake on LAN (WoL)
  14. NFLOG (Linux Netfilter NFLOG) – nur Analyse (keine Bearbeitung)

Vermittlungsschicht (L3)

  1. ARP
  2. GRE
  3. ICMP
  4. ICMPv6
  5. IGMP (IGMPv1, IGMPv2 und IGMPv3 werden unterstützt)
  6. IPv4
  7. IPv6
  8. MPLS
  9. NDP
  10. Raw IP (IPv4 & IPv6)
  11. VRRP (IPv4 & IPv6)
  12. WireGuard

Transportschicht (L4)

  1. COTP
  2. GTP (v1 & v2)
  3. IPSec AH & ESP – nur Analyse (keine Bearbeitung)
  4. TCP
  5. TPKT
  6. UDP

Sitzungsschicht (L5)

  1. SDP
  2. SIP

Darstellungsschicht (L6)

  1. SSL/TLS – nur Analyse (keine Bearbeitung)

Anwendungsschicht (L7)

  1. ASN.1-Decoder und -Encoder
  2. BGP (v4)
  3. Decoder für kryptografische Schlüssel
  4. DHCP
  5. DHCPv6
  6. DNS
  7. DoIP
  8. FTP
  9. HTTP-Header (Anfrage & Antwort)
  10. LDAP
  11. Modbus
  12. MySQL – nur Analyse (keine Bearbeitung)
  13. NTP (v3, v4)
  14. PEM-Decoder und -Encoder
  15. PostgreSQL Wire Protocol (PGWire) – nur Analyse (keine Bearbeitung)
  16. Radius
  17. S7 Communication (S7comm)
  18. SMTP
  19. SOME/IP
  20. SSH – nur Analyse (keine Bearbeitung)
  21. Telnet – nur Analyse (keine Bearbeitung)
  22. X509-Zertifikate – nur Analyse (keine Bearbeitung)
  23. Generische Nutzdaten

DPDK- und PF_RING-Unterstützung

The Data Plane Development Kit (DPDK) ist eine Reihe von Datenebenen-Bibliotheken und Netzwerkschnittstellen-Controller-Treibern für schnelle Paketverarbeitung.

PF_RING™ ist ein neuer Typ von Netzwerk-Socket, der die Paketerfassungsgeschwindigkeit drastisch verbessert.

Beide Frameworks bieten sehr schnelle Paketverarbeitung (bis zu Leitungsgeschwindigkeit) und werden in vielen Netzwerkanwendungen wie Routern, Firewalls, Lastverteilern usw. eingesetzt. PcapPlusPlus bietet eine C++-Abstraktionsschicht über DPDK & PF_RING. Diese Abstraktionsschicht bietet eine einfach zu bedienende Schnittstelle, die viel des Boilerplate-Codes entfernt, der bei der Verwendung dieser Frameworks anfällt. Weitere Informationen finden Sie auf den Unterstützungsseiten für DPDK und PF_RING auf der PcapPlusPlus-Website.

Benchmarks

Wir haben das Projekt packet-capture-benchmarks von Matias Fontanini verwendet, um die Leistung von PcapPlusPlus mit anderen ähnlichen C++-Bibliotheken (wie libtins und libcrafter) zu vergleichen.

Die Ergebnisse finden Sie auf der Benchmarks-Seite der PcapPlusPlus-Website.

Feedback geben

Wir freuen uns über jedes Feedback. Bitte zögern Sie nicht, uns auf einem der folgenden Wege zu kontaktieren:

Wenn Ihnen dieses Projekt gefällt, bitte geben Sie uns einen Stern auf GitHub – das hilft! ⭐ ⭐

Besuchen Sie die PcapPlusPlus-Website, um mehr zu erfahren.

Mitwirken

Wir würden uns über jeden Beitrag zu diesem Projekt sehr freuen. Wenn Sie interessiert sind, besuchen Sie die Beitragsseite auf der PcapPlusPlus-Website.

Lizenz

PcapPlusPlus wird unter der Unlicense-Lizenz veröffentlicht.

GitHub

Kategorien