README-ja.md

May 24, 2026 · View on GitHub

⚠️ 注意: この翻訳は AI を使用して維持・同期されており、最新の英語版と差異がある可能性があります。誤りを見つけられた場合は、GitHub の Issue を作成するか、PR を提出してください。

PcapPlusPlus ロゴ

GitHub Workflow ステータス GitHub Workflow ステータス Codecov OpenSSF Scorecard GitHub コントリビューター

X フォロー GitHub Repo スター

PcapPlusPlus は、ネットワークパケットのキャプチャ、解析、生成を行うためのマルチプラットフォーム C++ ライブラリです。効率的かつ強力で、使いやすく設計されています。

PcapPlusPlus は、多種多様なネットワークプロトコルのデコードと生成機能を提供します。また、libpcapWinPcapNpcapDPDKeBPF AF_XDPWinDivertPF_RING など、最も人気のあるパケット処理エンジンに対する使いやすい C++ ラッパーも提供します。

翻訳: English · 正體中文 · 한국어 · 日本語 · Русский

目次

ダウンロード

GitHub のリリースページからダウンロードするか、パッケージマネージャーを使用するか、PcapPlusPlus を自分でビルドすることができます。詳細については、PcapPlusPlus ウェブサイトの ダウンロード ページをご覧ください。

GitHub 全リリースのダウンロード数

GitHub リリースページ

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

Homebrew

brew install pcapplusplus

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

Vcpkg

Windows:

.\vcpkg install pcapplusplus

MacOS/Linux:

vcpkg install pcapplusplus

Vcpkg ポート: https://github.com/microsoft/vcpkg/tree/master/ports/pcapplusplus

Conan

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

ConanCenter のパッケージ: https://conan.io/center/pcapplusplus

自分でビルドする

git リポジトリをクローンします:

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

PcapPlusPlus ウェブサイトの ソースからビルド ページで、お使いのプラットフォームに応じたビルド手順に従ってください。

パッケージの検証

v23.09 より新しい PcapPlusPlus のリリースは、GitHub の attestation で署名されています。すべての attestation は こちら で確認できます。GitHub CLI を使ってこれらのパッケージの attestation を検証できます。パッケージを検証するには、gh attestation verify の最新の手順に従ってください。シンプルな手順としては、次のコマンドを使用できます:

gh attestation verify <path-to-package-file> --repository seladb/PcapPlusPlus

ターミナルに次の出力が表示されるはずです:

 Verification succeeded!

機能概要

  • パケットキャプチャ: libpcapWinPcapNpcapIntel DPDKeBPF AF_XDPWinDivertntop の PF_RINGraw socket といった人気のパケットキャプチャエンジンに対する、使いやすい C++ ラッパーによるパケットキャプチャ [詳細]
  • パケット解析と生成: 幅広い ネットワークプロトコル について、プロトコルとレイヤーの詳細な解析、パケット生成、パケット編集を含みます [詳細]
  • ファイルからのパケットの読み書き: PCAPPCAPNG の両形式をサポート [詳細]
  • ラインレートでのパケット処理: DPDKeBPF AF_XDPPF_RING に対する効率的で使いやすい C++ ラッパー [詳細]
  • マルチプラットフォーム対応: PcapPlusPlus は Linux、MacOS、Windows、Android、FreeBSD で完全にサポートされています
  • パケット再構成: TCP の再送、順序が乱れた TCP パケット、欠落した TCP データを扱う独自の TCP 再構成 実装、および IPv4 と IPv6 のフラグメントを生成・再構成する IP フラグメント化・デフラグメント化 [詳細]
  • パケットフィルタリング: libpcap の BPF フィルタを非常に使いやすくします [詳細]
  • TLS フィンガープリンティング: JA3 と JA3S の TLS フィンガープリンティングの C++ 実装 [詳細]

はじめに

PcapPlusPlus でアプリケーションを書くことは非常に簡単で直感的です。以下は、PCAP ファイルからパケットを読み込んで解析する方法を示す簡単なアプリケーションです:

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

int main(int argc, char* argv[])
{
    // 読み取り用に pcap ファイルを開く
    pcpp::PcapFileReaderDevice reader("1_packet.pcap");
    if (!reader.open())
    {
        std::cerr << "pcap ファイルを開く際にエラーが発生しました" << std::endl;
        return 1;
    }

    // ファイルから最初の(かつ唯一の)パケットを読み込む
    pcpp::RawPacket rawPacket;
    if (!reader.getNextPacket(rawPacket))
    {
        std::cerr << "ファイル内の最初のパケットを読み込めませんでした" << std::endl;
        return 1;
    }

    // raw パケットを解析済みパケットに変換する
    pcpp::Packet parsedPacket(&rawPacket);

    // パケットが IPv4 であることを確認する
    if (parsedPacket.isPacketOfType(pcpp::IPv4))
    {
        // 送信元 IP と宛先 IP を抽出する
        pcpp::IPv4Address srcIP = parsedPacket.getLayerOfType<pcpp::IPv4Layer>()->getSrcIPv4Address();
        pcpp::IPv4Address destIP = parsedPacket.getLayerOfType<pcpp::IPv4Layer>()->getDstIPv4Address();

        // 送信元 IP と宛先 IP を出力する
        std::cout << "送信元 IP: '" << srcIP << "'; 宛先 IP: '" << destIP << "'" << std::endl;
    }

    // ファイルを閉じる
    reader.close();

    return 0;
}

詳細は PcapPlusPlus ウェブサイトの はじめに ページで確認できます。このページでは、いくつかの簡単なステップを通じて、アプリケーションを起動するまでの流れを案内します。

API ドキュメント

PcapPlusPlus は 3 つのライブラリで構成されています:

  1. Packet++ - ネットワークパケットを解析・生成・編集するためのライブラリ
  2. Pcap++ - パケットの傍受と送信、ネットワークと NIC の情報、統計情報などを提供するライブラリ。実体は libpcap、WinPcap、Npcap、DPDK、AF_XDP、WinDivert、PF_RING といったパケットキャプチャエンジンの C++ ラッパーです
  3. Common++ - Packet++ と Pcap++ の両方で使用される共通のコードユーティリティを含むライブラリ

PcapPlusPlus ウェブサイトの API ドキュメントセクション で詳細な API ドキュメントを確認できます。 不足しているデータがあれば、ご連絡ください

マルチプラットフォーム対応

PcapPlusPlus は現在 Windows Linux MacOS Android 、そして FreeBSD でサポートされています。 PcapPlusPlus ウェブサイトで サポートされているすべてのプラットフォーム を確認し、ダウンロード セクションを参照してお使いのプラットフォームで PcapPlusPlus を使い始めてください。

サポートされるネットワークプロトコル

PcapPlusPlus は現在、以下のプロトコルのパケットの解析、編集、生成をサポートしています:

データリンク層 (L2)

  1. Cisco HDLC
  2. Ethernet II
  3. IEEE 802.3 Ethernet
  4. LLC (BPDU のみサポート)
  5. Null/Loopback
  6. Packet trailer (footer または padding とも呼ばれる)
  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) - 解析のみ (編集機能なし)

ネットワーク層 (L3)

  1. ARP
  2. GRE
  3. ICMP
  4. ICMPv6
  5. IGMP (IGMPv1、IGMPv2、IGMPv3 をサポート)
  6. IPv4
  7. IPv6
  8. MPLS
  9. NDP
  10. Raw IP (IPv4 と IPv6)
  11. VRRP (IPv4 と IPv6)
  12. WireGuard

トランスポート層 (L4)

  1. COTP
  2. GTP (v1 と v2)
  3. IPSec AH と ESP - 解析のみ (編集機能なし)
  4. TCP
  5. TPKT
  6. UDP

セッション層 (L5)

  1. SDP
  2. SIP

プレゼンテーション層 (L6)

  1. SSL/TLS - 解析のみ (編集機能なし)

アプリケーション層 (L7)

  1. ASN.1 デコーダおよびエンコーダ
  2. BGP (v4)
  3. 暗号鍵デコーダ
  4. DHCP
  5. DHCPv6
  6. DNS
  7. DoIP
  8. FTP
  9. HTTP ヘッダ (リクエストとレスポンス)
  10. LDAP
  11. Modbus
  12. MySQL - 解析のみ (編集機能なし)
  13. NTP (v3, v4)
  14. PEM デコーダおよびエンコーダ
  15. PostgreSQL Wire Protocol (PGWire) - 解析のみ (編集機能なし)
  16. Radius
  17. S7 Communication (S7comm)
  18. SMTP
  19. SOME/IP
  20. SSH - 解析のみ (編集機能なし)
  21. Telnet - 解析のみ (編集機能なし)
  22. X509 証明書 - 解析のみ (編集機能なし)
  23. 汎用ペイロード

DPDK と PF_RING のサポート

The Data Plane Development Kit (DPDK) は、高速パケット処理のためのデータプレーンライブラリとネットワークインターフェースコントローラドライバ群です。

PF_RING™ は、パケットキャプチャ速度を劇的に向上させる新しいタイプのネットワークソケットです。

どちらのフレームワークも非常に高速なパケット処理 (ラインスピードまで) を提供し、ルーター、ファイアウォール、ロードバランサーなど多くのネットワークアプリケーションで使用されています。 PcapPlusPlus は DPDK と PF_RING の上に C++ の抽象化レイヤーを提供します。この抽象化レイヤーは、これらのフレームワークを利用する際に発生する多くのボイラープレートを取り除き、使いやすいインターフェースを提供します。詳細は、PcapPlusPlus ウェブサイトの DPDKPF_RING のサポートページで確認できます。

ベンチマーク

PcapPlusPlus と他の類似 C++ ライブラリ (libtinslibcrafter など) のパフォーマンスを比較するために、Matias Fontanini 氏の packet-capture-benchmarks プロジェクトを使用しました。

結果は PcapPlusPlus ウェブサイトの ベンチマーク ページで確認できます。

フィードバックの提供

フィードバックを大歓迎いたします。以下のいずれかの方法でお気軽にご連絡ください:

このプロジェクトを気に入っていただけたら、GitHub でスターをお願いします — 大きな助けになります! :star: :star:

詳細は PcapPlusPlus ウェブサイト をご覧ください。

コントリビューション

このプロジェクトへの貢献を心より歓迎します。貢献にご興味があれば、PcapPlusPlus ウェブサイトの コントリビューションページ をご覧ください。

ライセンス

PcapPlusPlus は Unlicense ライセンス の下で公開されています。

GitHub