Skip to main content

libpcap C 库的 Python 绑定。

项目描述

libpcap

libpcap C 库的 Python 绑定。

概述

Python libpcap模块是libpcap C 库的低级绑定。
努力让 python 程序完全访问由众所周知的libpcap Unix C 库提供的 API 及其在 Win32 系统下由以下数据包捕获系统提供的实现: NpcapWinPcap

PyPI 记录

文档

libpcap是一个轻量级的 Python 包,基于ctypes库。
它完全兼容从 1.0.0 到 1.9.0 API 和WinPcap的 4.1.3 libpcap (1.0.0rel0b) API 的原始 C libpcap的实现,通过在干净的 Python 而不是 C 中实现其全部功能。

有用的libpcap API 文档可以在以下位置找到:

libpcap使用 libpcap.cfg 中指定的底层libpcap C 共享库(系统的 libpcap 共享库是默认的),但也可以通过以下方式之一以编程方式指定它:

import libpcap
libpcap.config(LIBPCAP=None)       # system's libpcap library will be used
# or
libpcap.config(LIBPCAP="npcap")
# or
libpcap.config(LIBPCAP="wpcap")    # included wpcap library will be used
# or
libpcap.config(LIBPCAP="tcpdump")  # included tcpdump library will be used
# or                               # (currently works only for Linux x64)
libpcap.config(LIBPCAP="libpcap shared library absolute path")

关于原始 libpcap:

“Tcpdump 组”的 LIBPCAP 1.xy:

https://www.tcpdump.org

匿名 Git 可通过以下方式获得:

git 克隆https://github.com/the-tcpdump-group/libpcap.git

以前来自:

劳伦斯伯克利国家实验室
网络研究组< libpcap @ ee . 政府>

此目录包含 libpcap 的源代码,这是一个用于用户级数据包捕获的系统独立接口。libpcap 为低级网络监控提供了一个可移植的框架。应用程序包括网络统计数据收集、安全监控、网络调试等。由于几乎每个系统供应商都为数据包捕获提供不同的接口,并且由于我们开发了几个需要此功能的工具,因此我们创建了这个独立于系统的 API 来易于移植并减轻每个应用程序中对多个系统相关的数据包捕获模块的需求。

对特定平台和 BPF 的支持:

对于某些平台,有 README.{system} 文件讨论操作系统接口在这些平台上捕获数据包的问题,​​例如如何在操作系统中启用对该接口的支持(如果默认情况下未内置该接口)。

libpcap 接口支持基于 BSD 包过滤器架构的过滤机制。BPF 在 1993 Winter Usenix 论文“The BSD Packet Filter: A New Architecture for User-level Packet Capture”(压缩 PostScriptgzipped PostScriptPDF)中进行了描述。

尽管大多数数据包捕获接口都支持内核过滤,但 libpcap 仅对 BPF 接口使用内核过滤。在没有 BPF 的系统上,所有数据包都被读入用户空间,并且 BPF 过滤器在 libpcap 库中进行评估,从而产生额外的开销(特别是对于选择性过滤器)。理想情况下,libpcap 会将 BPF 过滤器转换为与底层内核子系统兼容的过滤器程序,但这还没有实现。

BPF 在 4.4BSD、BSD/OS、NetBSD、FreeBSD、OpenBSD、DragonFly BSD 和 macOS 中是标准的;在 AIX 中,一个旧的、修改过的和未记录的版本是标准的。DEC OSF/1、Digital UNIX、Tru64 UNIX 使用 packetfilter 接口,但已扩展为接受 BPF 过滤器(libpcap 使用该过滤器)。此外,您可以使用内核源代码和/或对象补丁将 BPF 过滤器支持添加到 Ultrix。

Linux 有许多基于 BPF 的系统,而 libpcap 还不支持任何 eBPF 机制,尽管它支持许多内存映射接收机制。有关更多信息,请参阅Linux 特定的 README

请注意包含 libpcap 的 Linux 发行版和 *BSD 系统:

现在有一个创建共享库的规则,它应该可以在 Linux 和 *BSD 以及其他平台上运行。

它将库的 soname 设置为“libpcap.so.1”;这是应该的,而不是“libpcap.so.1.x”或“libpcap.so.1.xy”或类似的东西。

很长一段时间以来,我们一直在维护 libpcap 版本之间的二进制兼容性;没有理由将与 libpcap 链接的二进制文件绑定到特定版本的 libpcap。

很长一段时间以来,我们一直在维护 libpcap 版本之间的二进制兼容性;没有理由将与 libpcap 链接的二进制文件绑定到特定版本的 libpcap。

要求

  • 它是一个完全独立的包。
    所有必要的东西都在正常安装过程中安装。
  • 注意:目前仅适用于 Windows 并经过测试。

安装

先决条件:

要安装运行:

python -m pip install --upgrade libpcap

发展

先决条件:

  • 开发严格基于tox。要安装它,请运行:

    python -m pip install --upgrade tox

访问开发页面

从源安装:

克隆源:

git clone https://github.com/karpierz/libpcap.git libpcap

并运行:

python -m pip install ./libpcap

或在开发模式下:

python -m pip install --editable ./libpcap

执照

版权所有 (c) 2016-2022,Adam Karpierz
在 BSD 许可下获得许可
请参阅随附的许可证文件。

作者

变更日志

1.11.0b7 (2022-09-10)

  • 升级到最新的 libpcap API 1.11.0-PRE

  • 将测试同步/升级到最新的 libpcap API 1.11.0-PRE

  • 添加非blocktest.py

  • Tox 配置已移至 pyproject.toml

1.11.0b6 (2022-08-25)

  • 升级到最新的 libpcap API 1.11.0-PRE

  • 设置修复和更新。

1.11.0b5 (2022-07-28)

  • 升级到最新的 libpcap API 1.11.0-PRE

  • 添加对 macOS x64 的支持(非常感谢 Erik Rainey emrainey @ Githublydia-hogan @ Github!)。

  • 添加对 Python 3.10 和 3.11 的支持

  • 添加对 PyPy 3.7、3.8 和 3.9 的支持

  • 安装更新(目前主要基于 pyproject.toml)。

1.11.0b4 (2022-01-10)

  • 放弃对 Python 3.6 的支持。

  • 版权年更新。

  • 设置更新。

1.11.0b2 (2021-11-10)

  • 升级到最新的 libpcap API 1.11.0-PRE

  • 版权年更新。

  • 向后不兼容- libpcap.cfg 现在是常规 INI 文件。

  • 设置更新。

1.10.0b15 (2020-10-18)

  • 添加对 Python 3.9 的支持。

  • 放弃对 Python 3.5 的支持。

  • 消除对公众的依赖。

  • 能够以编程方式指定后端。

  • 建立系统的 libpcap 作为默认后端。

  • 修复了一个严重的设置错误(非常感谢msrst @ Github!)。

  • 一般更新和清理。

  • 修复了文档设置。

1.10.0b10 (2020-01-16)

  • 添加对 Python 3.8 的支持。

  • 放弃对 Python 3.4 的支持。

  • 放弃对 Python 2 的支持。

  • 升级到最新的 libpcap API 1.10.0-PRE

  • 建立 npcap 作为默认后端。

  • 由于 ev,内部 npcap 的 dll-s 已被删除。许可证问题。

  • 添加对 Linux x64 的支持:
    添加具有远程捕获支持的内部 tcpdump 的 libpcap.so v.1.9.1。
    系统的 tcpdump 的 libpcap.so 也可以使用(通过 libpcap.libpcap.cfg)。
  • 添加了 ReadTheDocs 配置文件。

  • 设置更新和清理。

1.10.0b5 (2019-09-16)

  • 升级到最新的 libpcap API 1.10.0-PRE

  • 将 npcap 的 libpcap dll-s 升级到 0.996

  • 较小的设置修复和改进。

1.10.0b3 (2019-02-15)

  • 升级到最新的 libpcap API 1.10.0-PRE

  • 将 npcap 的 libpcap dll-s 升级到 0.99rc9

  • 更新所需的 setuptools 版本。

  • 较小的设置改进。

  • 测试更新。

1.10.0b1 (2018-11-08)

  • 升级到最新的 libpcap API 1.10.0-PRE

  • 将 npcap 的 libpcap dll-s 升级到 0.99rc7

  • 更新所需的 setuptools 版本。

1.0.0b14 (2018-05-09)

  • 更新所需的 setuptools 版本。

1.0.0b13 (2018-05-09)

  • 将 npcap 的 libpcap dll-s 升级到 0.99rc5

1.0.0b12 (2018-05-08)

  • 升级到最新的 libpcap。

1.0.0b10 (2018-03-31)

  • 升级到最新的 libpcap。

  • 改进和简化设置和打包。

  • 改进和更新测试。

1.0.0b9 (2018-02-26)

  • 改进和简化设置和打包。

1.0.0b8 (2018-02-25)

  • 升级到最新的 libpcap API 1.9.0

  • 设置改进。

1.0.0b7 (2017-12-18)

  • 修复平台检测错误(感谢 Dan ???)。

1.0.0b6 (2017-10-11)

  • 升级到 libpcap API 1.9.0

1.0.0b5 (2017-10-08)

  • 升级到 libpcap API 1.8.1

  • 从Npcap添加对 libpcap 的支持。

1.0.0b4 (2017-10-04)

  • 第四次测试版。

1.0.0b3 (2017-08-28)

  • 第三个测试版。

1.0.0b1 (2017-08-27)

  • 第一个测试版。

1.0.0a16 (2017-08-26)

  • 下一个 alpha 版本。

1.0.0a0 (2017-06-08)

  • 第一个 alpha 版本。

0.0.1 (2016-09-23)

  • 初始发行。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

libpcap-1.11.0b7.zip (905.1 kB 查看哈希

已上传 source

内置分布

libpcap-1.11.0b7-py3-none-any.whl (849.9 kB 查看哈希

已上传 py3