Skip to main content

pypcapfile is a pure Python library for handling libpcap savefiles.

Installing

The easiest way to install is from
sudo pip install pypcapfile
Note that for pip, the package name is pypcapfile; in your code you will need to
import pcapfile.
Alternatively, you can install from source. Clone the repository, and run setup.py with
an install argument:
git clone git://github.com/kisom/pypcapfile.git
cd pypcapfile
./setup.py install
This does require the Python distutils to be
installed.

Introduction

The core functionality is implemented in pcapfile.savefile:

>>> from pcapfile import savefile
>>> testcap = open('test.pcap', 'rb')
>>> capfile = savefile.load_savefile(testcap, verbose=True)
[+] attempting to load test.pcap
[+] found valid header
[+] loaded 11 packets
[+] finished loading savefile.
>>> print capfile
little-endian capture file version 2.4
microsecond time resolution
snapshot length: 65535
linklayer type: LINKTYPE_ETHERNET
number of packets: 11

You can take a look at the packets in capfile.packets:

>>> pkt = capfile.packets[0]
>>> pkt.raw()
<binary data snipped>
>>> pkt.timestamp
1343676707L
Right now there is very basic support for Ethernet frames and IPv4 packet
parsing.

Automatically decoding layers

The layers argument to load_savefile determines how many layers to
decode; the default value of 0 does no decoding, 1 will load only the link
layer, etc… For example, with no decoding:
>>> from pcapfile import savefile
>>> from pcapfile.protocols.linklayer import ethernet
>>> from pcapfile.protocols.network import ip
>>> import binascii
>>> testcap = open('samples/test.pcap', 'rb')
>>> capfile = savefile.load_savefile(testcap, verbose=True)
[+] attempting to load samples/test.pcap
[+] found valid header
[+] loaded 3 packets
[+] finished loading savefile.
>>> eth_frame = ethernet.Ethernet(capfile.packets[0].raw())
>>> print eth_frame
ethernet from 00:11:22:33:44:55 to ff:ee:dd:cc:bb:aa type IPv4
>>> ip_packet = ip.IP(binascii.unhexlify(eth_frame.payload))
>>> print ip_packet
ipv4 packet from 192.168.2.47 to 173.194.37.82 carrying 44 bytes

and this example:

>>> from pcapfile import savefile
>>> testcap = open('samples/test.pcap', 'rb')
>>> capfile = savefile.load_savefile(testcap, layers=1, verbose=True)
[+] attempting to load samples/test.pcap
[+] found valid header
[+] loaded 3 packets
[+] finished loading savefile.
>>> print capfile.packets[0].packet.src
00:11:22:33:44:55
>>> print capfile.packets[0].packet.payload
<hex string snipped>

and lastly:

>>> from pcapfile import savefile
>>> testcap = open('samples/test.pcap', 'rb')
>>> capfile = savefile.load_savefile(testcap, layers=2, verbose=True)
>>> print capfile.packets[0].packet.payload
ipv4 packet from 192.168.2.47 to 173.194.37.82 carrying 44 bytes
The IPv4 module (ip) currently only supports basic IP headers, i.e. it
doesn’t yet parse options or add in padding.

The interface is still a bit messy.

Future planned improvements

  • IP options parsing (END and NOP is supported)

  • IPv6 support

  • TCP options parsing

  • ARP support

TODO

  1. write unit tests

  2. add __repr__ method that shows all of the values of the fields in IP packets and Ethernet frames.

See also

Contributors

A list of the project’s contributors may be found in the AUTHORS file.

Release files for pypcapfile 0.12.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pypcapfile 0.12.0
File Size Uploaded
pypcapfile-0.12.0.tar.gz 17.2 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for pypcapfile 0.12.0
File Interpreter ABI Platform
pypcapfile-0.12.0.linux-x86_64.tar.gz Details
pypcapfile-0.12.0-1.src.rpm Details
pypcapfile-0.12.0-1.noarch.rpm Details

Total release size: 124.4 kB

Release files / pypcapfile-0.12.0.tar.gz

Download URL pypcapfile-0.12.0.tar.gz
Size 17.2 kB
Tags Source
SHA-256 checksum
How to use checksums
3328e2136980468b0906bbe05a5a6e4e506a6f1a8451cf80393814c31e6f3b7f
BLAKE2b-256 checksum
How to use checksums
5ca870677db49ecd688c7207e525664864d709f4aa2f76c29964cc93825f34b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / pypcapfile-0.12.0.linux-x86_64.tar.gz

Download URL pypcapfile-0.12.0.linux-x86_64.tar.gz
Size 30.4 kB
Tags Source
SHA-256 checksum
How to use checksums
1b1aa22b1682e327728750490334d5cc5a44a5a312349742bfe5a579dc15242f
BLAKE2b-256 checksum
How to use checksums
ff16cc0757bb3de3ef304e5ce080bba079df1da31703dddbb4b0d1d547e854fc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / pypcapfile-0.12.0-1.src.rpm

Download URL pypcapfile-0.12.0-1.src.rpm
Size 29.1 kB
Tags Source
SHA-256 checksum
How to use checksums
3e0914ba0147ab8c1c2e28dbfe043d48fb7431de8ae3dedc4719e6c96b30d987
BLAKE2b-256 checksum
How to use checksums
73523ea7f41fcd6b8b91885851f0dbf4e1e2e0a88a7f7b1a58047966e93a99be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / pypcapfile-0.12.0-1.noarch.rpm

Download URL pypcapfile-0.12.0-1.noarch.rpm
Size 47.6 kB
Tags Source
SHA-256 checksum
How to use checksums
0a51d809d971c720e3d94ddb7a5b19e79f93016a0af2430cb6ba4ef1fab21bb9
BLAKE2b-256 checksum
How to use checksums
960417c540a47b837dd8f4a8959da698f7bf51e0237d7bb4a8499eaf1c21dee6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.12.0 This release

4 release files

0.11.1

1 release file

0.11.0

1 release file

0.10.0

1 release file

0.9.1

1 release file

0.9.0

0.8.2

1 release file

0.8.1

1 release file

0.8

1 release file

0.7

1 release file

0.6

1 release file

0.5.1

1 release file

0.5.0

1 release file

0.4.3

1 release file

0.4.1

2 release files

0.4

2 release files

0.3

2 release files

0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page