Metadata-Version: 2.1
Name: pcap-ct
Version: 1.3.0b2
Summary: Python wrapper for the pcap library.
Author: Adam Karpierz
Author-email: adam@karpierz.net
Maintainer: Adam Karpierz
Maintainer-email: adam@karpierz.net
License: BSD license ; https://opensource.org/license/bsd-3-clause
Project-URL: Homepage, https://pypi.org/project/pcap-ct/
Project-URL: Documentation, https://pcap-ct.readthedocs.io/
Project-URL: Download, https://pypi.org/project/pcap-ct/
Project-URL: Source, https://github.com/karpierz/pcap-ct
Project-URL: Issues, https://github.com/karpierz/pcap-ct/issues
Keywords: pcap-ct,pcap,libpcap,pypcap,wpcap,npcap
Platform: any
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Natural Language :: Polish
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: <4.0.0,>=3.8.10
Description-Content-Type: text/x-rst; charset=UTF-8
License-File: LICENSE
Requires-Dist: setuptools>=72.2.0
Requires-Dist: pkg-about>=1.1.8
Requires-Dist: libpcap>=1.11.0b10
Provides-Extra: doc
Requires-Dist: Sphinx>=7.1.2; extra == "doc"
Requires-Dist: sphinx-toolbox>=3.7.0; extra == "doc"
Requires-Dist: sphinx-tabs>=3.4.5; extra == "doc"
Requires-Dist: sphinx-copybutton>=0.5.2; extra == "doc"
Requires-Dist: sphinxcontrib-spelling>=8.0.0; extra == "doc"
Requires-Dist: sphinx-lint>=0.9.1; extra == "doc"
Requires-Dist: restructuredtext-lint>=1.4.0; extra == "doc"
Requires-Dist: nbsphinx>=0.9.4; extra == "doc"
Provides-Extra: test
Requires-Dist: deepdiff>=7.0.1; extra == "test"
Requires-Dist: rich>=13.7.1; extra == "test"
Requires-Dist: dpkt>=1.9.8; extra == "test"

pcap-ct
=======

Python wrapper for the *pcap* library.

Overview
========

| Python |package_bold| package is a simplified object-oriented Python wrapper
  for *libpcap* C library - the current tcpdump.org version, and the WinPcap
  port for Windows..
|
| |package_bold| is a pure Python package, based on the low-level
  `libcap <https://pypi.org/project/libpcap/>`__ package.
| It is fully compliant implementation of the original
  `PyPCAP <https://github.com/pynetwork/pypcap>`__ 1.2.3 API (with some minor
  improvements and bug fixes) by implementing whole its functionality in a
  clean Python instead of Cython and C.

`PyPI record`_.

`Documentation`_.

About original PyPCAP:
----------------------

Borrowed from the `original website <https://pypcap.readthedocs.io>`__:

PyPCAP
------

This is a simplified object-oriented Python wrapper for libpcap -
the current tcpdump.org version, and the WinPcap port for Windows.

Example use #1::

    >>> import pcap
    >>> sniffer = pcap.pcap(name=None, promisc=True, immediate=True, timeout_ms=50)
    >>> addr = lambda pkt, offset: '.'.join(str(ord(pkt[i])) for i in range(offset, offset + 4))
    >>> for ts, pkt in sniffer:
    ...     print('%d\tSRC %-16s\tDST %-16s' % (ts, addr(pkt, sniffer.dloff + 12), addr(pkt, sniffer.dloff + 16)))
    ...

Example use #2::

    Listing Interfaces

    >>> import pcap
    >>> print ("Interfaces:\n" + '\n'.join(pcap.findalldevs()))

Windows notes
-------------

WinPcap has compatibility issues with Windows 10, therefore
it's recommended to use `Npcap <https://nmap.org/npcap/>`_
(Nmap's packet sniffing library for Windows, based on the WinPcap/Libpcap libraries,
but with improved speed, portability, security, and efficiency).
Please enable WinPcap API-compatible mode during the library installation.

Installation
============

Prerequisites:

+ Python 3.8 or higher

  * https://www.python.org/
  * with C libpcap 1.8.1 is a primary test environment.
  * ATTENTION: currently tested only for Windows.

+ pip and setuptools

  * https://pypi.org/project/pip/
  * https://pypi.org/project/setuptools/

To install run:

  .. parsed-literal::

    python -m pip install --upgrade |package|

Development
===========

Prerequisites:

+ Development is strictly based on *tox*. To install it run::

    python -m pip install --upgrade tox

Visit `Development page`_.

Installation from sources:

clone the sources:

  .. parsed-literal::

    git clone |respository| |package|

and run:

  .. parsed-literal::

    python -m pip install ./|package|

or on development mode:

  .. parsed-literal::

    python -m pip install --editable ./|package|

License
=======

  | Copyright (c) 2016-2024 Adam Karpierz
  | Licensed under the BSD license
  | https://opensource.org/license/bsd-3-clause
  | Please refer to the accompanying LICENSE file.

Authors
=======

* Adam Karpierz <adam@karpierz.net>

.. |package| replace:: pcap-ct
.. |package_bold| replace:: **pcap-ct**
.. |respository| replace:: https://github.com/karpierz/pcap-ct.git
.. _Development page: https://github.com/karpierz/pcap-ct
.. _PyPI record: https://pypi.org/project/pcap-ct/
.. _Documentation: https://pcap-ct.readthedocs.io/

Changelog
=========

1.3.0b2 (2024-08-13)
--------------------
- Add support for Python 3.12 and 3.13
- Drop support for Python 3.7
- Add support for PyPy 3.9 and 3.10
- Drop support for PyPy 3.7 and 3.8
- Setup (dependencies) update.

1.3.0b1 (2022-09-10)
--------------------
- | Support for libpcap.set_buffer_size() via 'buffer_size'
  | (optional) pcap constructor's parameter.
- | Added 'datalink' optional parameter to pcap constructor
  | (thank you very much easy-easy@Github for the patch!).
- Tox configuration has been moved to pyproject.toml

1.2.3b14 (2022-08-30)
---------------------
- Update for libpcap>=1.11.0b6
- Add support for Python 3.10 and 3.11
- Add preliminary support for PyPy 3.7, 3.8 and 3.9
- Setup update (currently based mainly on pyproject.toml).

1.2.3b12 (2022-01-19)
---------------------
- | Fixed a bug in pcap.sendpacket()
  | (thank you very much EvanSonnemans@Github
  | for report and bugfix!).

1.2.3b11 (2022-01-10)
---------------------
- Update for libpcap>=1.11.0b3
- Drop support for Python 3.6.
- Copyright year update.
- Setup update.

1.2.3b9 (2021-11-10)
--------------------
- Update for libpcap>=1.11.0b2
- Copyright year update.
- Fixes for Linux.
- Setup update.

1.2.3b5 (2020-10-18)
--------------------
- Add support for Python 3.9.
- Drop support for Python 3.5.
- | Fixed a critical setup of 'libpcap' package
  | (thank you very much msrst@Github!).
- General update and cleanup.
- Fixed docs setup.

1.2.3b1 (2019-11-14)
--------------------
- Update for PyPCAP 1.2.3.
- Add support for Python 3.8.
- Drop support for Python 2.
- Drop support for Python 3.4.
- Update required setuptools version.
- Setup improvements and cleanup.

1.2.0b5 (2018-11-08)
--------------------
- Update required setuptools version.
- Minor setup and tests improvements.

1.2.0b4 (2018-02-26)
--------------------
- Improve and simplify setup and packaging.

1.2.0b3 (2018-02-01)
--------------------
- Update for PyPCAP 1.2.0.

1.2.0b2 (2017-10-10)
--------------------
- Minor changes.

1.2.0b1 (2017-10-05)
--------------------
- Next beta release.
- Update for PyPCAP 1.2.0rc.

1.1.6b4 (2017-10-04)
--------------------
- Fourth beta release.

1.1.6b3 (2017-08-28)
--------------------
- Third beta release.

1.1.6b2 (2017-08-28)
--------------------
- Second beta release.

1.1.6b1 (2017-08-27)
--------------------
- First beta release.

1.1.6a15 (2017-08-25)
---------------------
- Next alpha release.

1.1.6a0 (2017-06-10)
--------------------
- First alpha release.

0.0.1 (2016-09-23)
------------------
- Initial release.
