Python的Linux Tun/TAP包装器
python-pytun的Python项目详细描述
pytun是一个python模块,您可以很容易地创建tun/tap设备。
许可证:麻省理工学院(见许可证)
安装和依赖项
用pip install python-pytun或download this archive安装pytun,然后解压缩 执行python setup.py install。由于pytun是一个C模块,您将需要一个 编译器(例如gcc)和安装在 系统(例如,在类似debian的分发检查中,build-essential和 python-dev存在)。除了python之外没有其他依赖项 标准库。
文档
注意:在大多数发行版中,您需要是root用户才能创建tun/tap设备。
要创建tun设备:
from pytun import TunTapDevice tun = TunTapDevice()
创建抽头设备:
from pytun import TunTapDevice, IFF_TAP tap = TunTapDevice(flags=IFF_TAP)
要使用自定义名称创建tun/tap设备,请使用name关键字:
tun = TunTapDevice(name='mytun')
您可以直接获取/设置设备的一些参数:
print tun.name tun.addr = '10.8.0.1' tun.dstaddr = '10.8.0.2' tun.netmask = '255.255.255.0' tun.mtu = 1500
如果设备是轻触,您还可以获取/设置其mac地址:
tap.hwaddr = '\x00\x11\x22\x33\x44\x55' print tap.hwaddr
要使设备持久化,请执行以下操作:
tun.persist(True)
启动设备:
tun.up()
要关闭设备:
tun.down()
要读/写设备,请使用方法read(size)和 write(buf):
buf = tun.read(tun.mtu) tun.write(buf)
关闭设备:
tun.close()
您还可以将TunTapDevice对象与期望 fileno()方法(例如select())