若要报告安全问题,请发送电子邮件至 [email protected]。
如需报告错误和其他问题、贡献补丁、请求功能、提供一般反馈等,请参阅贡献指南。
文档目录中包含关于特定操作系统和选项的README文件。
匿名 Git 可通过以下地址获取:
https://github.com/the-tcpdump-group/libpcap.git
此目录包含 libpcap 的源代码,这是一个系统无关的用户级数据包捕获接口。libpcap 为底层网络监控提供了可移植的框架。应用包括网络统计数据收集、安全监控、网络调试等。由于几乎每个系统供应商都提供不同的数据包捕获接口,并且我们开发了几个需要此功能的工具,因此我们创建了这个系统无关的 API,以便于移植并减少每个应用程序中多个系统相关的数据包捕获模块的需求。
formerly from Lawrence Berkeley National Laboratory
Network Research Group <[email protected]>
ftp://ftp.ee.lbl.gov/old/libpcap-0.4a7.tar.Z
对于某些平台,存在 README.{system} 文件,讨论操作系统在这些平台上的数据包捕获接口相关问题,例如如何启用对该接口的支持(如果默认未内置)。
libpcap 接口支持基于 BSD 数据包过滤器架构的过滤机制。BPF 在 1993 年冬季 Usenix 论文《BSD 数据包过滤器:用户级数据包捕获的新架构》中有所描述 (压缩 PostScript、 gzip 压缩 PostScript、 PDF)。
尽管大多数数据包捕获接口支持某些内核内过滤,但 libpcap 仅对支持 BPF 程序的用例使用内核内过滤,即 BPF 数据包捕获接口、Linux 数据包套接字和 GNU/Hurd 接口。
在所有其他情况下,libpcap 会将每个数据包读入用户空间,并使用过滤程序对其进行评估,这会产生额外开销(尤其是对于选择性过滤器)。理想情况下,libpcap 会将 BPF 过滤器转换为与底层内核子系统兼容的过滤程序,但目前尚未实现。
BPF 是 NetBSD、FreeBSD、OpenBSD、DragonFly BSD、macOS、QNX 和 Solaris 11 的标准组件;AIX 中有一个较旧、修改过且无文档记录的版本。
Linux 拥有许多基于 BPF 的系统,但 libpcap 目前尚不支持任何 eBPF 机制,尽管它支持许多内存映射接收机制。 更多信息请参阅 Linux 专用 README。
现在有一个用于创建共享库的规则,该规则应在 Linux 和 *BSD 等平台上生效。
它将库的 soname 设置为 libpcap.so.1;这应该是正确的,而不是 libpcap.so.1.x 或 libpcap.so.1.x.y 之类的名称。
我们已经保持了相当长一段时间的二进制兼容性;没有理由将链接到 libpcap 的二进制文件绑定到特定的 libpcap 版本。