Skip to main content

PyPCAPKit: comprehensive network packet analysis library

Project description

For any technical and/or maintenance information, please kindly refer to the Official Documentation.

The PyPCAPKit project is an open source Python program focus on network packet parsing and analysis, which works as a comprehensive PCAP file extraction, construction and analysis library.

The whole project supports Python 3.6 or later.

About

PyPCAPKit is a comprehensive Python-native network packet analysis library, with DictDumper as its formatted output dumper.

Unlike popular PCAP file extractors, such as Scapy, DPKT, PyShark, and etc, pcapkit is designed to be much more comprehensive, which means it is able to provide more detailed information about the packet, as well as a more Pythonic interface for users to interact with.

Module Structure

In pcapkit, all files can be described as following eight parts.

  • Interface (pcapkit.interface)

    User interface for the pcapkit library, which standardises and simplifies the usage of this library.

  • Foundation (pcapkit.foundation)

    Synthesises file I/O and protocol analysis, coordinates information exchange in all network layers, as well as provides the foundamental functions for pcapkit.

  • Protocols (pcapkit.protocols)

    Collection of all protocol family, with detailed implementation and methods.

  • Utilities (pcapkit.utilities)

    Auxiliary functions and tools for pcapkit.

  • CoreKit (pcapkit.corekit)

    Core utilities for pcapkit implementation, mainly for internal data structure and processing.

  • ToolKit (pcapkit.toolkit)

    Auxiliary tools for pcapkit to support the multiple extraction engines with a unified interface.

  • DumpKit (pcapkit.dumpkit)

    File output formatters for pcapkit.

  • Constants (pcapkit.const)

    Constant enumerations used in pcapkit for protocol family extraction and representation.

Engine Comparison

Due to the general overhead of pcapkit, its extraction procedure takes around 0.2 milliseconds per packet, which is already impressive but not enough comparing to other popular extration engines availbale on the market, given the fact that pcapkit is a comprehensive packet processing module.

Additionally, pcapkit introduced alternative extractionengines to accelerate this procedure. By now pcapkit supports Scapy, DPKT, and PyShark.

Test Environment

Operating System

macOS Ventura 13.4.1

Chip

Apple M2 Pro

Memory

16 GB

Test Results

Engine

Performance (ms per packet)

dpkt

0.010390_056723

scapy

0.091690_233567

pcapkit

0.200390_390390

pyshark

24.682185_018351

Installation

Simply run the following to install the current version from PyPI:

pip install pypcapkit

Or install the latest version from the gi repository:

git clone https://github.com/JarryShaw/PyPCAPKit.git
cd pypcapkit
pip install -e .
# and to update at any time
git pull

And since pcapkit supports various extraction engines, and extensive plug-in functions, you may want to install the optional ones:

# for DPKT only
pip install pypcapkit[DPKT]
# for Scapy only
pip install pypcapkit[Scapy]
# for PyShark only
pip install pypcapkit[PyShark]
# and to install all the optional packages
pip install pypcapkit[all]
# or to do this explicitly
pip install pypcapkit dpkt scapy pyshark

For CLI usage, you will need to install the optional packages:

pip install pypcapkit[cli]
# or explicitly...
pip install pypcapkit emoji

Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pypcapkit-1.3.1.post3.tar.gz (671.0 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pypcapkit-1.3.1.post3-pp39-none-any.whl (975.4 kB view details)

Uploaded PyPy

pypcapkit-1.3.1.post3-pp38-none-any.whl (975.4 kB view details)

Uploaded PyPy

pypcapkit-1.3.1.post3-cp311-none-any.whl (975.4 kB view details)

Uploaded CPython 3.11

pypcapkit-1.3.1.post3-cp310-none-any.whl (975.4 kB view details)

Uploaded CPython 3.10

pypcapkit-1.3.1.post3-cp39-none-any.whl (975.4 kB view details)

Uploaded CPython 3.9

pypcapkit-1.3.1.post3-cp38-none-any.whl (975.4 kB view details)

Uploaded CPython 3.8

File details

Details for the file pypcapkit-1.3.1.post3.tar.gz.

File metadata

  • Download URL: pypcapkit-1.3.1.post3.tar.gz
  • Upload date:
  • Size: 671.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for pypcapkit-1.3.1.post3.tar.gz
Algorithm Hash digest
SHA256 def33498f64db44cbdcf117ae38c17417c1731f44850abb7b426bf26044453f9
MD5 5060a77c65a8b6350ab516a0a81a12b5
BLAKE2b-256 14e8e9773ef21b79f5d8232b609629a15250aa73f5f1b3667d89914713fc264d

See more details on using hashes here.

File details

Details for the file pypcapkit-1.3.1.post3-pp39-none-any.whl.

File metadata

File hashes

Hashes for pypcapkit-1.3.1.post3-pp39-none-any.whl
Algorithm Hash digest
SHA256 23bf738269ad2d3c24c0664d2be4da2798205969a03cbaf6efd0fffa7517c880
MD5 2eb28a92c5a1a964529521d8d039dccf
BLAKE2b-256 994954a77dae5ef57bdb66d12ca48eb93e18fc1f428dcf065da68ba883bfb72c

See more details on using hashes here.

File details

Details for the file pypcapkit-1.3.1.post3-pp38-none-any.whl.

File metadata

File hashes

Hashes for pypcapkit-1.3.1.post3-pp38-none-any.whl
Algorithm Hash digest
SHA256 dd8e47d36983b80955915390cb1d8d1c44b23d02ef2471365117f260634fab2c
MD5 71b1163639b70694371701acf808d01e
BLAKE2b-256 1e00c47fccd11eaa39b7a0c4ac4de6e392bb2289e6c9c8576db19053eff48aae

See more details on using hashes here.

File details

Details for the file pypcapkit-1.3.1.post3-cp311-none-any.whl.

File metadata

File hashes

Hashes for pypcapkit-1.3.1.post3-cp311-none-any.whl
Algorithm Hash digest
SHA256 2f82970167d1ceaa91bd770f69b8800e0f575f924c3ef118d6cff5106485c7e4
MD5 cdd7a14be38cbfa874c209861232d2a2
BLAKE2b-256 af407083b8efe7e396608f00c43cd56a64f9b722ddf7f4541be77396b15b6806

See more details on using hashes here.

File details

Details for the file pypcapkit-1.3.1.post3-cp310-none-any.whl.

File metadata

File hashes

Hashes for pypcapkit-1.3.1.post3-cp310-none-any.whl
Algorithm Hash digest
SHA256 3cc8d542b7c66f37095908ba87534cdd55afa3c394a612c945936e7faa38796d
MD5 c986a594f4b879ac4370806e968c6d19
BLAKE2b-256 85cc7893acb3f8b94f861ef4acf5cfee7f740f1c5b3477a35676ba7e53f05748

See more details on using hashes here.

File details

Details for the file pypcapkit-1.3.1.post3-cp39-none-any.whl.

File metadata

File hashes

Hashes for pypcapkit-1.3.1.post3-cp39-none-any.whl
Algorithm Hash digest
SHA256 aa0a66cf979d42bd1a7dc893c8eae6794517302e92c3c995d60838f4c7fc03f4
MD5 3a59735d5c9edaafa46007b6afe36f9c
BLAKE2b-256 d59e26f26ade3793d58a1f0d37bf278a74c654e2c5523c99bf14326dbf90ea32

See more details on using hashes here.

File details

Details for the file pypcapkit-1.3.1.post3-cp38-none-any.whl.

File metadata

File hashes

Hashes for pypcapkit-1.3.1.post3-cp38-none-any.whl
Algorithm Hash digest
SHA256 4f03e8c0817eb61f54bcfab10ad5d1c0c657dc3f85f9bcbd7a1da9f286b6f3cc
MD5 1d617ccc776c306abd170077634d7060
BLAKE2b-256 09f2edf4b4545cdb7c9d6608e187489e08d61936446beb049dca26609c497dd9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page