TAP/TUN(二)
#include<assert.h>#include<fcntl.h>#include<stdio.h>#include<string.h>#include<sys/socket.h>#include<sys/ioctl.h>#include<linux/if.h>#include<linux/if_tun.h>#include<sys/types.h>#include<errno.h>#include<net/route.h>intTap=0;intTap1=0;int interface_up(char*interface_name){int s;if((s = socket(PF_INET,SOCK_STREAM,0))<0){printf("Error create socket :%m/n", errno);return-1;}struct ifreq ifr;strcpy(ifr.ifr_name,interface_name);short flag;flag = IFF_UP;if(ioctl(s, SIOCGIFFLAGS,&ifr)<0){printf("Error up %s :%m/n",interface_name, errno);return-1;}ifr.ifr_ifru.ifru_flags |= flag;if(ioctl(s, SIOCSIFFLAGS,&ifr)<0){printf("Error up %s :%m/n",interface_name, errno);return-1;}return0;}int tun_create(char*dev,int flags){struct ifreq ifr;int fd, err;assert(dev != NULL);if((fd = open("/dev/net/tun", O_RDWR))<0){return fd;}memset(&ifr,0,sizeof(ifr));ifr.ifr_flags |= flags;if(*dev !='\0'){strncpy(ifr.ifr_name, dev, IFNAMSIZ);}if((err=ioctl(fd,TUNSETIFF,(void*)&ifr))<0){close(fd);return err;}strcpy(dev,ifr.ifr_name);return fd;}int main(int argc,char*argv[]){char tun_name[IFNAMSIZ]="tap0";char tun_name1[IFNAMSIZ]="tap1";Tap=tun_create(tun_name, IFF_TAP | IFF_NO_PI);if(Tap<0){perror("tun_create");return1;}printf("TAP name is %s\n", tun_name);printf("Tap=%d\n",Tap);//interface_up(tun_name);system("ifconfig tap0 10.66.31.185 netmask 255.255.0.0 up");while(1);}
程序要一直运行,否则程序退出后创建的TAP设备会被释放

附件列表
TAP/TUN(二)的更多相关文章
- TAP/TUN摘要
TUN适用于IP帧.Tap适用于以太网帧.TAP摸拟一个以太网设备(以arp广播MAC识别),它操作第二层数据包如以太网数据帧.TUN模拟了网络层ip设备(以点对点的方式,使用ip标识),操作第三层数 ...
- 一文总结 Linux 虚拟网络设备 eth, tap/tun, veth-pair
本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. Linux 虚 ...
- 利用 Linux tap/tun 虚拟设备写一个 ICMP echo 程序
本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. 前面两篇文章已 ...
- Linux 网络工具详解之 ip tuntap 和 tunctl 创建 tap/tun 设备
本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. 在前面一篇文章 ...
- [原创] 详解云计算网络底层技术——虚拟网络设备 tap/tun 原理解析
本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. 在云计算时代, ...
- 【转】Linux 网络工具详解之 ip tuntap 和 tunctl 创建 tap/tun 设备
原文:https://www.cnblogs.com/bakari/p/10449664.html -------------------------------------------------- ...
- TAP/TUN浅析(一)
参考链接:https://www.ibm.com/developerworks/cn/linux/1310_xiawc_networkdevice/ TAP 设备与 VETH 设备 TUN/T ...
- TAP/TUN浅析
转:http://www.cnblogs.com/yml435/p/5917628.html 参考链接:https://www.ibm.com/developerworks/cn/linux/1310 ...
- [转]Linux-虚拟网络设备-tun/tap
转: 原文:https://blog.csdn.net/sld880311/article/details/77854651 ------------------------------------- ...
随机推荐
- net core 控制台中文乱码的解决方案
net core 对控制台中文的支持需要加入下面的语句 Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
- 读书笔记 --TCP :传输控制协议(二)
TCP建立连接 请求端(客户端)发送一个SYN指明客户端打算连接的服务器端口号,以及初始序列号. 服务端发回包含服务器的初始序号的SYN报文段作为应答.同时,将确认序号设置为客户的ISN加1以对客户的 ...
- python3.4学习笔记(十七) 网络爬虫使用Beautifulsoup4抓取内容
python3.4学习笔记(十七) 网络爬虫使用Beautifulsoup4抓取内容 Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖 ...
- python--常见模块
本节大纲: 1.模块介绍 2.time&datetime 3.random. 4.os 5.sys 6.shutil 7.json&picle 8.shelve 9.xml处理 10. ...
- Kafka学习笔记-Java简单操作
Maven依赖包: <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka ...
- Android setVisibility()
android view setVisibility(): 有三个参数:Parameters:visibility One of VISIBLE, INVISIBLE, or GONE,想对应的三个常 ...
- JDK的安装与Java环境变量的配置详解
JDK作为JAVA开发的环境,必须在电脑上安装JDK. 1.下载jdk http://rj.baidu.com/soft/detail/14459.html?ald下载jdk最新版jdk-8u11-w ...
- android ViewPager使用遇到的问题
项目需求是需要实现一个有两页可滑动的界面,就想到了使用ViewPager,在实现是没有深入考虑,就直接使用了PagerAdapter,页面是正常实现了,可是发现无法流畅的刷新页面(直接使用notify ...
- XML序列化
1.先创建资产文件assets AssetManager am=getAssts(); 2.获得文件字节输入流 InputStrem is=am.open("weather"); ...
- Dream It Possible
反复听着Dream It Possible,想起自己的华为岁月,百感交集!