linux – 带有Tun接口的I/O.
|
目的是让程序拦截一组IP数据包并读取其原始内容,然后在修改之后将其重新插入网络. 我的方法是基于设置Tuntap接口(Tun,具体),然后让iptables和类似的方法将所需的数据包重定向到这个隧道接口. 出于测试目的,我编写了这个简短的shell脚本来设置Tun接口并添加所需的规则.现在,我打算在我的本地机器发送的任何数据包上测试它,目的地为123.123.123.123.这是启动脚本:
我开始编写一个perl脚本来从Tun设备读取,但是我立即停留在多个点上: >在我看来,这样做的方法是让脚本本身通过调用文件句柄上的ioctl()创建接口到/ dev / net / tun,但我不确定ioctl()想要的其他参数.这引导我接下来的两点: 当我遇到ioctl()标志时,我想退后一步问:如何以编程方式从Tun设备读取,最好是事先设置的预配置设备? 此外,如果有人发现启动脚本有任何问题,请随时喊出来. 虽然理想情况下溶剂将在perl中,但它不一定是,这只是我能阅读最简单的语言. Java也不错.不幸的是,我的C识字率甚至没有达到应有的水平. 编辑: 如果采用与Tun / Tap不同的方法允许我按照第一段中的描述进行操作,那么当然欢迎任何建议. 注意: 我来到this question并且虽然相似但它没有提供ioctl()争论的答案.然而,它表明需要进行ioctl()调用. 最佳答案 首先,TUN / TAP接口记录为in the Linux kernel documentation,如果您还没有看到它,值得一读.当然,这些例子都在C中,但希望仍然有用.
这是一个C库常量,您可以使用以下代码确定其值:
我的系统返回哪个:
第三个参数是指向具有的结构的指针
您可以找到不同标志的值(IFF_TUN,IFF_TAP) 如果您在Perl中编写代码,则需要一种方法来创建 但是,似乎有许多可用的Perl模块 > http://search.cpan.org/~mooli/Linux-TunTap-0.001/lib/Linux/TunTap.pm (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- linux – 如何在Linix中执行文件操作即cp,mv,rm和chown等时
- linux – 如何设置一个简单的DNS服务器来回答一个名称并转发
- 如何在RedHat Enterprise 5上安装automake和autoconf?
- linux – 捕获直接重定向到/ dev / tty
- linux – 从官方发行版安装服务器应用程序更好,还是应该下载
- linux – .bash_history:它总是记录我发出的每个命令吗?
- linux – 我怎么知道为什么我的Perl代码在内核空间花了这么
- linux – Putty Kerberos / GSSAPI身份验证
- linux – pp(PAR)在哪里解包添加(-a)文件?
- linux – 在启用了NX(DEP)和ASLR的x86-64上利用基于字符串的
