Pcap

pcap (packet capture) とは、コンピュータネットワーク管理の分野におけるパケットスニファのためのAPIである。Unix系のシステムではpcapはlibpcapとして実装されている。Windowsではlibpcapを移植したWinPcapが使われていたが、開発が終了したためWindows Vista以降を対象としたNpcapが後継として使われている。
モニタリングソフトウェアは、ネットワーク上を流れているパケットをキャプチャするためにlibpcapやWinPcapを利用することができる。さらに新しいバージョンでは、リンク層上にパケットを送り出すことや利用可能なネットワークインターフェースの一覧を取得することもできる。
libpcap/WinPcapはキャプチャしたパケットをファイルに保存したり、保存したファイルから読み出したりできる。つまり、アプリケーションはキャプチャしたネットワークのトラフィックをそのまま解析したり、いったん保存したトラフィックを解析することが、単一の解析プログラムだけで実現できる。libpcap/WinPcapのフォーマットで保存されたファイルは、そのフォーマットを理解するアプリケーションによって読み込める。
libpcap/WinPcapは、オープンソースや商用のネットワークツールのパケットキャプチャ・フィルタリングエンジンを提供している。これにはプロトコル・アナライザ(パケットスニファ)、ネットワークモニタ、侵入検知システム、トラフィックジェネレータ、ネットワークテスターなどが含まれる。
pcap APIの実装はC言語とC++で書かれており、Java、.NET、さらにスクリプト言語などではたいていラッパーが利用可能である。
libpcap.
libpcapは元々ローレンス・バークレー研究所のNetwork Research Group内のtcpdumpの開発者によって作られた。tcpdumpの低レベルパケットキャプチャ、キャプチャファイルの読み込み・書き出しのソースコードを抜き出してライブラリにして、tcpdumpがそのライブラリにリンクするようになった。2019年現在、libpcapはtcpdump開発チームであるtcpdump.orgグループによって開発されている。
WinPcap.
のプログラマーがオリジナルのソースコードを書いた。2008年に、WinPcapの開発者らによってCACE Technologiesという企業が設立され、WinPcapの開発・維持を行っていたが、2018年9月15日に今後アップグレードする計画はないこと、バグ、質問の受付など行わないことをアナウンスし、実質的な開発終了を宣言した。
Npcap.
NpcapはWinPcapのNDIS6対応版としてGoogle Summer of Codeにおいて2013年から2015年にかけてYang Luoによって開発され、現在はNmapプロジェクトで開発が続けられている。