Object-oriented wrapper around the Linux Tun/Tap device
Project description
Fork of PyTap that supports Python 3.
Requirements
The ifconfig command line utility must be installed for pytap2 to operate.
To install ifconfig on Debian/Ubuntu:
$ sudo apt install net-tools
To install ifconfig on RHEL/Rocky Linux/Fedora:
$ sudo yum install net-tools
Installation
You can install, upgrade, and uninstall pytap2 with these commands:
$ pip install pytap2
$ pip install --upgrade pytap2
$ pip uninstall pytap2
Usage
Using as a context manager automatically brings up the device and closes it at the end of the with block.
from pytap2 import TapDevice
with TapDevice() as device:
device.ifconfig(mtu=1300)
device.write(b'0000')
Or manually call up() and close().
from pytap2 import TapDevice
device = TapDevice()
device.up()
device.ifconfig(mtu=1300)
device.write(b'0000')
device.close()
The fileno() method is defined, so that the device object can be passed directly to select().
Releases
2.3.0 - 2023-04-28
Drop Python 3.7 and support Python 3.11
Support Mypy type checking for users
2.2.0 - 2021-11-06
Drop Python 3.6 and support Python 3.10.
Document dependency on ifconfig
2.1.0 - 2020-12-30
Drop Python 3.5 and support Python 3.9.
Switch to GitHub Actions for CI.
2.0.0 - 2020-03-29
Drop Python 2.7.
1.6.0 - 2019-12-15
Drop Python 3.4 and support Python 3.8.
Include license file.
1.5.0 - 2018-07-09
Support Python 3.7.
1.4.0 - 2017-10-24
Allow disabling packet information header (IFF_NO_PI) and default read() to read entire MTU worth of data plus the packet information header if present.
1.3.0 - 2017-07-31
Add fileno() method to support select() calls.
1.2.0 - 2017-06-19
Context manager support added.
1.1.0 - 2017-06-17
Allow read() to be called with a specific number of bytes to read.
1.0.0 - 2017-06-16
Initial release that supports Python 2 and 3.
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.