Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Rename README in README.rst and complete it.
- Loading branch information
Showing
2 changed files
with
60 additions
and
62 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
Linux TUN/TAP wrapper for Python | ||
================================ | ||
|
||
``pytun`` is a Python module which let you create TUN/TAP device very easily. | ||
|
||
License: MIT (see LICENSE) | ||
|
||
Installation and Dependencies | ||
----------------------------- | ||
|
||
To install ``pytun``, `download the zip archive | ||
<https://github.com/montag451/pytun/zipball/master>`_, decompress it and | ||
execute ``python setup.py install``. As ``pytun`` is a C module you will need a | ||
compiler (e.g GCC) and the Python developpement headers installed on your | ||
system (e.g on Debian-like distribution check that ``build-essential`` and | ||
``python-dev`` are present). There are no dependencies other than the Python | ||
Standard Library. | ||
|
||
Examples | ||
-------- | ||
|
||
NOTE: On most distributions you will need to be root to run this examples. | ||
|
||
To create a TUN device:: | ||
|
||
from pytun import TunTapDevice | ||
|
||
tun = TunTapDevice() | ||
|
||
To create a TAP device:: | ||
|
||
from pytun import TunTapDevice, IFF_TAP | ||
|
||
tap = TunTapDevice(flags=IFF_TAP) | ||
|
||
To create a TUN/TAP device with a custom name use the ``name`` keyword:: | ||
|
||
tun = TunTapDevice(name='mytun') | ||
|
||
You can get/set some parameters of the device directly:: | ||
|
||
print tun.name | ||
tun.addr = '10.8.0.1 | ||
tun.dstaddr = '10.8.0.2 | ||
tun.netmask = '255.255.255.0' | ||
tun.mtu = 1500 | ||
|
||
To read/write to the device, use the methods ``read(size)`` and | ||
``write(buf)``:: | ||
|
||
buf = tun.read(tun.mtu) | ||
tun.send(buf) | ||
|
||
When when you are done with a device, close it:: | ||
|
||
tun.close() | ||
|
||
You can also use ``TunTapDevice`` objects with all functions that expect a | ||
``fileno()`` method (e.g ``select()``) | ||
|