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.1.post24.tar.gz (670.7 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.post24-pp310-none-any.whl (975.5 kB view details)

Uploaded PyPy

pypcapkit-1.3.1.post24-pp39-none-any.whl (975.5 kB view details)

Uploaded PyPy

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

Uploaded PyPy

pypcapkit-1.3.1.post24-cp312-none-any.whl (975.5 kB view details)

Uploaded CPython 3.12

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

Uploaded CPython 3.11

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

Uploaded CPython 3.10

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

Uploaded CPython 3.9

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

Uploaded CPython 3.8

File details

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

File metadata

  • Download URL: pypcapkit-1.3.1.post24.tar.gz
  • Upload date:
  • Size: 670.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.5

File hashes

Hashes for pypcapkit-1.3.1.post24.tar.gz
Algorithm Hash digest
SHA256 7c054226c3a53567628e117b7cdc8214c0b867ff3d285cba2f895f50370d3e74
MD5 ddd78cda7d28bf5892e25919abde79ac
BLAKE2b-256 178cdd81ea1f83dfbc6e376335e630eb80e7f7e319f15ff9755da93f07b7ae84

See more details on using hashes here.

File details

Details for the file pypcapkit-1.3.1.post24-pp310-none-any.whl.

File metadata

File hashes

Hashes for pypcapkit-1.3.1.post24-pp310-none-any.whl
Algorithm Hash digest
SHA256 4e594e0c9e4cbc45df9101480edcb20dbc378d472383c0f0622a95c867c1ff93
MD5 9b8384a953acb86686ceb9a1f3bdb0af
BLAKE2b-256 5486ee8763ed55c5adac7b37bbc00dc6d3fe6398712d0f1a3d9767ddedf1b148

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.1.post24-pp39-none-any.whl
Algorithm Hash digest
SHA256 936954e57f14a030ce8f6821a3f19964984d40319402db552c5f6e9736215d65
MD5 60833d601f8b5fa5c29a80b55304797c
BLAKE2b-256 c18895decaefc738f4815a3ac01bf430ea5621f9da40d0e1935c6eb51495982f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.1.post24-pp38-none-any.whl
Algorithm Hash digest
SHA256 a9da41b515595a6f65744d1c29540c12fa0e830c699deda11dbb27a6333b0357
MD5 e0ccdfe8387d2157464b96fe2311ecb5
BLAKE2b-256 099634dcb23bc1dac3a335e5c516c1303a8a3b18ae0cb325f611bb53be926f9a

See more details on using hashes here.

File details

Details for the file pypcapkit-1.3.1.post24-cp312-none-any.whl.

File metadata

File hashes

Hashes for pypcapkit-1.3.1.post24-cp312-none-any.whl
Algorithm Hash digest
SHA256 7b4ba66febd7150d2fa475a52bbad39b8684231f7ce626d93a74ee3c6df7d733
MD5 b4f2ebb53fd994c571360c7b70bbf55b
BLAKE2b-256 8c4fa90c85b9d357c88fe048e871a80dfe29cb4f9e4e6b8e9dbbd73067c34120

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.1.post24-cp311-none-any.whl
Algorithm Hash digest
SHA256 1d514c1e81cc11f0a46da8f84949072f6ac03bdd1c28fe8bdc4547198555ee45
MD5 45eb3d2d3004282cabe95689d6298a56
BLAKE2b-256 848e32558bd02b4b064c1fd071884bddf593ed920319bce5d4a998184977a6de

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.1.post24-cp310-none-any.whl
Algorithm Hash digest
SHA256 108601ad5277b2e377bc9659e40c447132ff102b073b4414d56a7fbdb261fe32
MD5 f72e50b4c0dcb2fcda417d55065768c2
BLAKE2b-256 cf82b617662e99f33c3fb2cf21076535525a4f2e770523555bbc937f9dca86fb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.1.post24-cp39-none-any.whl
Algorithm Hash digest
SHA256 81d1e072ac5025167d51ada88a10f2ec6db8e77e9eb0d1e896aa9fbb676fc06b
MD5 8ee2e12deef371b46abeae2293a53faa
BLAKE2b-256 bd4c28361801a06e6ffb83fd264202541410abfabc0e43cd5286c3033a6d2308

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.1.post24-cp38-none-any.whl
Algorithm Hash digest
SHA256 d8187fc00383e6eee423a86acbc294d6c8ac2717e200bdbd3c6ea57b1ed3e9b1
MD5 23849ef2532d9599c168e27116eec574
BLAKE2b-256 39d303254217f11011457d40b39fcea42aa8063081e0a5cd36a1a85b5ddbc0cf

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