libpcap
オペレーティングシステム(OS)のネットワーク機能にアクセスし、ネットワークインターフェース(NIC)を通じて送受信されるパケットの内容を動作に影響を与えずに読み取って記録することができる。得られた情報はネットワーク監視や侵入検知・防止、プログラムの動作解析などに利用することができる。
ハードウェアに近い低レベル(低レイヤー)で動作する仕組みであり、イーサネット(Ethernet)やWi-Fi(無線LAN)のフレーム、IPデータグラム、TCPセグメント、UDPデータグラム、アプリケーション層プロトコルのメッセージなど、ネットワーク上でやり取りされるすべてのデータを取り込むことができる。
UNIX系OSで人気のキャプチャツール「tcpdump」のパケットキャプチャ機能を分離して独立したライブラリとして整理したもので、tcpdump自体もlibpcapを呼び出して利用する形に再編されている。pcap APIはC言語およびC++言語のプログラム向けに定義されており、他の言語で利用する場合は適切なラッパーを用意する必要がある。
libpcapはtcpdumpと同じ開発者集団が開発や修正を行っており、BSDライセンスに基づいてオープンソースとして公開されている。Linuxなど多くのUNIX系OSで事実上の標準として広く用いられている。別の開発チームによってWindows向けに移植された「WinPcap」および実質的な後継の「Npcap」も提供されている。
(2024.2.18更新)