这个和Linux 的TUN demo一样,添加一条静态路由指定TUN设备,demo 程序从TUN读取报文,简单处理ICMP报文,然后送回协议栈,从而使ping命令成功执行。
与Linux 不同,windows中需要自己安装TUN 驱动。TAP-Windows Adapter V9,下面的代码链接中包含。安装后会出现一个网卡设备
代码是根据 https://gitee.com/ZhangYingSk8/TunHelpAPI/tree/master修改而来的,我在这里就不贴了,页可以参考我修改的https://download.csdn.net/download/wjmasd/35804445(我设置的是0分,不知道实际会怎样)
下面是测试过程
demo运行前路由表:
demo运行后,增加了一条 192.168.65.0网络的路由,出接口是10.1.1.35 (TAP网卡)
执行ping命令, 192.168.65.x ip都可以ping通,
wireshark抓包
虽然wireshark 抓包中长度是74,带有mac地址,但是我们在程序中从TAP网卡中获得的报文实际是没有mac的,长度是60,可能跟wireshark驱动有关。