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.post5.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.post5-pp39-none-any.whl (975.5 kB view details)

Uploaded PyPy

pypcapkit-1.3.1.post5-pp38-none-any.whl (975.5 kB view details)

Uploaded PyPy

pypcapkit-1.3.1.post5-cp311-none-any.whl (975.5 kB view details)

Uploaded CPython 3.11

pypcapkit-1.3.1.post5-cp310-none-any.whl (975.5 kB view details)

Uploaded CPython 3.10

pypcapkit-1.3.1.post5-cp39-none-any.whl (975.5 kB view details)

Uploaded CPython 3.9

pypcapkit-1.3.1.post5-cp38-none-any.whl (975.5 kB view details)

Uploaded CPython 3.8

File details

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

File metadata

  • Download URL: pypcapkit-1.3.1.post5.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.post5.tar.gz
Algorithm Hash digest
SHA256 86882b49855ec9e45020a0b5d4ad94d54d2beed256e23aab06a6d53e034e135c
MD5 c48ee0251696b9e00620abd3ee1b9a0a
BLAKE2b-256 743b53729238497bf51bb9bd559bf376aa57c500345cd96e8c2917537f8e5d3c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.1.post5-pp39-none-any.whl
Algorithm Hash digest
SHA256 4d9e6af51ef164d4000136db9ff75d4e8b4a43cc55efbc22eb8372316fe56634
MD5 048e214816cd2ecaa6a73a6b0a9b2aff
BLAKE2b-256 4843263a454a629023b8cf43aa6de386623280012fa93d4fb28d9f509352e377

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.1.post5-pp38-none-any.whl
Algorithm Hash digest
SHA256 f5cc11b3279d4d063cd05501e0d8b2cf0876534c49d1510c82d1db2dafbebd6c
MD5 4e9422acc3e0bd5e59cfbc7008c756ef
BLAKE2b-256 5eed2c36272ef23b41ab69f32e4f21a02b61eed111d1d2dd4bfe743db25cd84e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.1.post5-cp311-none-any.whl
Algorithm Hash digest
SHA256 ed13623070b84d6c5eae86ff8b18c84a281131b72594273238c66b77dc1adedf
MD5 a290989402e3aa16b99ef0bb1d2233c0
BLAKE2b-256 bc352f730119891058c50edf5b093ea96a65cc07a83e09a4b2e25c94d18be9cc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.1.post5-cp310-none-any.whl
Algorithm Hash digest
SHA256 aefdcda260699af7bace47b7c6b931899a5547e79c3f6960964693659bb0609c
MD5 7bae4b823931a54b637bc981f6c77f40
BLAKE2b-256 1432fbd10b85a674443c69da0d8b88a2e526b8136385557a60e88cb3088e7207

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.1.post5-cp39-none-any.whl
Algorithm Hash digest
SHA256 b1c12001b491e64cd48cdd7d0e36bc640e90bb6592d3e0b46ee49e57ffceee83
MD5 6a682cda79f700e8e8bc9444b9b439dd
BLAKE2b-256 3d63ea531e820dc368ec3da2417c1906811a68cdb24f5e319b4a1872efb3a87e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.1.post5-cp38-none-any.whl
Algorithm Hash digest
SHA256 77635f34a64b4a9fcb67ee078f7dc3147529dcc9ec495b8cf4402e676e1a98f6
MD5 2f021994a02786bd34b697ab3d1c2f68
BLAKE2b-256 80c2dfa90e1c7ba91f06a7658c78510b62b4a74d4d28f7bd9ce0f9df0b741091

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