pcap是一个用于捕获网络流量的应用程序编程接口(API),支持在类Unix系统的libpcap库和Windows系统的Npcap中实现。它允许监控软件捕获网络数据包,并支持将捕获的数据包保存到文件中,以及读取包含已保存数据包的文件。pcap API是用C语言编写的,但也支持其他语言通过包装器使用。它是许多网络工具的数据包捕获和过滤引擎的基础,并且创建和读取的文件格式的MIME类型是application/vnd.tcpdump.pcap,通常以.pcap为文件扩展名。
软件简介
pcap API虽然是用C语言编写的,但其他语言如Java、.NET语言和脚本语言通常使用包装器来调用。C++程序可以直接链接到C API,或者使用面向对象的包装器。libpcap、WinPcap和Npcap提供了许多开源和商业网络工具的数据包捕获和过滤引擎,包括协议分析器、网络监视器、网络入侵检测系统、流量生成器和网络测试工具。这些工具中的一些,如tcpdump、Wireshark、CA NetMaster或Microsoft Network Monitor 3.x,可以读取以libpcap、WinPcap和Npcap使用的格式保存的捕获文件。libpcap最初由劳伦斯伯克利实验室的网络研究小组开发,而Npcap是Nmap项目的Windows数据包嗅探库,它利用了Windows网络的改进。还有一些其他程序使用或曾经使用libpcap,例如Bit-Twist、Cain and Abel、EtherApe、Firesheep、iftop、Kismet、L0phtCrack、McAfee ePolicy Orchestrator、ngrep、Nmap、Pirni、Scapy、Snort、Suricata、Symantec Data Loss Prevention、tcpdump、Zeek、URL Snooper、WhatPulse、Wireshark、XLink Kai、Xplico等。此外,还有一些用于libpcap的包装库,如C++的Libtins、Perl的Net::Pcap、Python的python-libpcap、Ruby的PacketFu、Rust的pcap、Tcl的tclpcap等。