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.post4.tar.gz (670.9 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.post4-pp39-none-any.whl (975.5 kB view details)

Uploaded PyPy

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

Uploaded PyPy

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

Uploaded CPython 3.11

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

Uploaded CPython 3.10

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

Uploaded CPython 3.9

File details

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

File metadata

  • Download URL: pypcapkit-1.3.1.post4.tar.gz
  • Upload date:
  • Size: 670.9 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.post4.tar.gz
Algorithm Hash digest
SHA256 e3484ee6c399233de46593d2d5f0954a9360ad5588ad0a24f418485347c6de19
MD5 357f8b190c513aeb380d714c4fcf733f
BLAKE2b-256 6d1712df373f24be922c2a7957a122fc974e9e27fc0c1058b7edf87b324d6b7e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.1.post4-pp39-none-any.whl
Algorithm Hash digest
SHA256 3ae41a35a481d7693ac5769ace22aa6df751555e4853cd577bb6014aed19f56a
MD5 2beaddae4016eaeb77031ca4652dcc13
BLAKE2b-256 ab5f6d1ccaea1aa3929e508f71dc58f1e29a8133fb9b5db99ef5a2f9faa1c28f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.1.post4-pp38-none-any.whl
Algorithm Hash digest
SHA256 ce6504185e8f228dd8cf8eb78e7a3948efb000f1786158413bbb063e43bbc21f
MD5 ee4abfb4a55c0fecd7b81deae0d824a0
BLAKE2b-256 2400d0fb72f63effa38bebbe53b929eb08aa7333d4621966f55b160eabe612ca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.1.post4-cp311-none-any.whl
Algorithm Hash digest
SHA256 06a7de0a1f03cbab8e47bca95f6ed8757bbaff4559a8793bb694f220f1731ba4
MD5 1f261e807106368b5651a403f4ee8f08
BLAKE2b-256 ae9647922941d15471e943bb795191ca146e0b009cf70b66ddc876ce42595321

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.1.post4-cp310-none-any.whl
Algorithm Hash digest
SHA256 b75c532fc8488a515ef0e3404b804230ae4a6942987471b5079e470c973f6b67
MD5 b965cc7f545249405a2eb6bdc7d9ba25
BLAKE2b-256 408306e84105e33d5a8a59dd11d3a8057dfd6d66768ada76613d9fcb36f1e745

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pypcapkit-1.3.1.post4-cp39-none-any.whl
Algorithm Hash digest
SHA256 537bee8b0e89ad94543c3a26f7bde1037140ae1329b21790ca2aa037ccd3c8f8
MD5 51f8b3aaeb95d9d2b8498d32fd9b2221
BLAKE2b-256 64eefd8153c225d998adc0d4e01c78b2aec01020375eabcf497ef9e95a16f9c0

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