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

Uploaded PyPy

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

Uploaded PyPy

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

Uploaded PyPy

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

Uploaded CPython 3.12

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

Uploaded CPython 3.11

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

Uploaded CPython 3.10

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

Uploaded CPython 3.9

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

Uploaded CPython 3.8

File details

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

File metadata

  • Download URL: pypcapkit-1.3.1.post18.tar.gz
  • Upload date:
  • Size: 670.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for pypcapkit-1.3.1.post18.tar.gz
Algorithm Hash digest
SHA256 f1f0d8e8f24c18e915e9ac713fa78da90b023863ed32c7d42d18df6c917b201c
MD5 9ed34b08a3fe3fd30cc7cd317370409f
BLAKE2b-256 b4d46ea739eef936f440c765aa2e5d8e1f80580dff631d3eec55b0e8444e54f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.1.post18-pp310-none-any.whl
Algorithm Hash digest
SHA256 cca0663b62793928bd1726b2b724502dd80983b567ffdd69ae0ab0f330e779ce
MD5 bdd2919a8b45247bb832126647a92c84
BLAKE2b-256 bce69bfc685aeabc1b84021741779d672a8a291c780a38875abd0e04f29b7fa5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.1.post18-pp39-none-any.whl
Algorithm Hash digest
SHA256 e8d995e18a9dbf80282cc5a4b15cc58de513c227d88dbf4ccef5552bc2825d3a
MD5 83b4920143f874155c011b81394a382a
BLAKE2b-256 443f027c957885fa21e57a77efba8c8d909a8160fafe52a2431ad61a2fbd7fb9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.1.post18-pp38-none-any.whl
Algorithm Hash digest
SHA256 01425ce72a57574625e5af027a91364b61030b5b3bb8a22e49739deb3431dc67
MD5 662c20a340d1e17195d68bb959b20009
BLAKE2b-256 741ab09f647e60af8e4b5fda718fb8e81704a79d2b7e0e89de7777d37c5fce3f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.1.post18-cp312-none-any.whl
Algorithm Hash digest
SHA256 4612821adaba9a0771835fb6c0a1b100051f31d8bb4b3d60513028f45d8e95e6
MD5 6dd217ea2bda82286152acca69bb786d
BLAKE2b-256 a734a4668667409ffaa209f68b6ae67f109dd562e05d8cc1fe7eedd7eea0f3d2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.1.post18-cp311-none-any.whl
Algorithm Hash digest
SHA256 8fddf6b6f4536b07d0a8c5cfff1ab5559b1b3a5dfa2efd0491a630a1e250a875
MD5 165608ae1f0a1903e7c394a4294b3ed9
BLAKE2b-256 614caac7e72749a90090142ef576a07beddf40b0e095314f360f4f55e93fdb04

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.1.post18-cp310-none-any.whl
Algorithm Hash digest
SHA256 4760f696ba5cdd17b8bd7b576b9bc3058cd556f8463a88d48ccefa89e6c73dbd
MD5 7c6d17ca15c108a4cdfd3cd58f297622
BLAKE2b-256 652e1a80010488324ec6c0699b4064330896f0210b4d57c2ff684e787d4eb8ff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.1.post18-cp39-none-any.whl
Algorithm Hash digest
SHA256 b2dfa637f097e05260cb9f4cb76c30b66608f1534790ed80c9b978319cffe0dc
MD5 939ad9441bc3bf6258dde450e3107bc4
BLAKE2b-256 f4a22c29ba6450e61a9d0ab816922df10d7e8d822b5131831f177dba451f3b5b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.1.post18-cp38-none-any.whl
Algorithm Hash digest
SHA256 3fcf916e274926f6b06235cd49a68f3567ff06c91e22659318887961b1e9417c
MD5 9d4b062e8c3e55d9bd4154d053b28da2
BLAKE2b-256 dca2a18c60a7ad9283e2607a36e58559ab97be19ca291336c4c52b36d6458013

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