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

Project details


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.5.post26.tar.gz (669.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.5.post26-pp39-none-any.whl (973.6 kB view details)

Uploaded PyPy

pypcapkit-1.3.5.post26-cp313-none-any.whl (973.6 kB view details)

Uploaded CPython 3.13

pypcapkit-1.3.5.post26-cp312-none-any.whl (973.6 kB view details)

Uploaded CPython 3.12

pypcapkit-1.3.5.post26-cp311-none-any.whl (973.6 kB view details)

Uploaded CPython 3.11

pypcapkit-1.3.5.post26-cp310-none-any.whl (973.6 kB view details)

Uploaded CPython 3.10

File details

Details for the file pypcapkit-1.3.5.post26.tar.gz.

File metadata

  • Download URL: pypcapkit-1.3.5.post26.tar.gz
  • Upload date:
  • Size: 669.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pypcapkit-1.3.5.post26.tar.gz
Algorithm Hash digest
SHA256 f65753db0cd018d1a0694669e8dc809bd1b0faafc69d692f79ee2a5f28ec3063
MD5 9a6c2f5fced5bfd6c5d6ad995adf56dc
BLAKE2b-256 891d0ab5d430de7bea09e80e1444a72a5623f25c180fb8ddeddad9b65f41dbd7

See more details on using hashes here.

File details

Details for the file pypcapkit-1.3.5.post26-pp39-none-any.whl.

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post26-pp39-none-any.whl
Algorithm Hash digest
SHA256 0d4bf0eaf7d7115ce6c52c3e28e0d853587d67daafb45c713e3aa49d2b3a96c0
MD5 576d02a8df0dde64e7aa63111420ed7c
BLAKE2b-256 05ef470cdf8d8534c5ee6a4273151343070d4190555fa15f9790dff23264c507

See more details on using hashes here.

File details

Details for the file pypcapkit-1.3.5.post26-cp313-none-any.whl.

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post26-cp313-none-any.whl
Algorithm Hash digest
SHA256 51411527c63fac5554181d698ff97747ffd5606e15c2e1ed391fc845ac6100b8
MD5 624f0c664a4a341cb3b468c8da1b264d
BLAKE2b-256 f49301b2cb83ef1ff4120fa0c18b078d22eb606e95e27ac89ce74af6822b8cec

See more details on using hashes here.

File details

Details for the file pypcapkit-1.3.5.post26-cp312-none-any.whl.

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post26-cp312-none-any.whl
Algorithm Hash digest
SHA256 650ebf52f628cdce8601b74c26ae0971efae4e3762bfb3bd4becfb92fabbf2f9
MD5 c58305345280a9a0f8b49426ebc9eb20
BLAKE2b-256 b9bd88bde6cc2fa716d233faae507046c009ca1dde622353c5e9d967499073fe

See more details on using hashes here.

File details

Details for the file pypcapkit-1.3.5.post26-cp311-none-any.whl.

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post26-cp311-none-any.whl
Algorithm Hash digest
SHA256 ace53b3ad35b6f7c6dc4e04f146f05d5df409ee16ebcfc2763300e29d9be8592
MD5 3e184a80d0e5bb226811f6f17b243e2c
BLAKE2b-256 575362404abfdfa15fbe6fe8912f8c3b3bea83bc7f60346120bb04fb4a764c13

See more details on using hashes here.

File details

Details for the file pypcapkit-1.3.5.post26-cp310-none-any.whl.

File metadata

File hashes

Hashes for pypcapkit-1.3.5.post26-cp310-none-any.whl
Algorithm Hash digest
SHA256 f84c8f2ab0a03a2ca9d4025ca9ae238935eb4037ac9b05fc12f3f00f4ec09dd7
MD5 e33eabcd56c5990423f46d0f9b404e0c
BLAKE2b-256 b9ef4ec3d9f877d41a67e44d628f736708afd370615e37baaa71e070f1701b0e

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