博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
创建启动虚拟网卡
阅读量:6273 次
发布时间:2019-06-22

本文共 1704 字,大约阅读时间需要 5 分钟。

  hot3.png

#include 
   #include 
   #include 
   #include 
   #include 
   #include 
   #include 
   #include 
   #include 
   #include 
   #include 
   #include 
   #include 
   #include 
   #include 
   #include 
   #include 
   #include 
  #include 
//启动网卡接口 int SetEtherStatusUP(const char *ethNum){ struct ifreq ifr; int sockfd; if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {  printf("Create socket fails!\n");  return -1;  } strcpy(ifr.ifr_name, ethNum); if (ioctl(sockfd, SIOCGIFFLAGS, &ifr) < 0) {  printf("ioctl SIOCGIFFLAGS fails!\n");  close(sockfd);  return -1;  } ifr.ifr_flags |= IFF_UP; if (ioctl(sockfd, SIOCSIFFLAGS, &ifr) < 0) {  printf("ioctl SIOCSIFFLAGS fails!\n");  close(sockfd);  return -1;  } close(sockfd); return 1;}//关闭网卡接口 int SetEtherStatusDOWN(const char *ethNum){ struct ifreq ifr; int sockfd; if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {  printf("Create socket fails!\n");  return -1;  }}int tun_create(char *dev, int flags){    struct ifreq ifr;    int fd, err;    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 tun4; char tun4_name[IFNAMSIZ]="tun4";  //tun4_name[0]='\0'; tun4 = tun_create(tun4_name, IFF_TAP | IFF_NO_PI); //tun4 = tun_create(tun4_name, IFF_TUN | IFF_NO_PI); printf("dev=%s\n",tun4_name); getchar(); SetEtherStatusUP(tun4_name); printf("up\n"); getchar(); SetEtherStatusDOWN(tun4_name); printf("down\n");  return 0;}

转载于:https://my.oschina.net/guyson/blog/223383

你可能感兴趣的文章
springboot+logback日志异步数据库
查看>>
Typescript教程之函数
查看>>
Android 高效安全加载图片
查看>>
vue中数组变动不被监测问题
查看>>
3.31
查看>>
类对象定义 二
查看>>
收费视频网站Netflix:用户到底想要“点”什么?
查看>>
MacOS High Sierra 12 13系统转dmg格式
查看>>
关于再次查看已做的多选题状态逻辑问题
查看>>
js--知识点dailyskill
查看>>
动态下拉菜单,非hover
查看>>
政府安全资讯精选 2017年第十六期 工信部发布关于规范互联网信息服务使用域名的通知;俄罗斯拟建立备用DNS;Google打击安卓应用在未经同意情况下收集个人信...
查看>>
推荐一个非常好用的 MarkDown 编辑器!
查看>>
使用 Hooks 简化受控组件的状态绑定
查看>>
Canvas && CSS && SVG 三种实现仪表盘的方式
查看>>
简单易懂的谈谈 javascript 中的继承
查看>>
Spark学习之Spark 集群资源调度
查看>>
京东Taro:用技术解放小程序生产力 | 点评家
查看>>
Dart编程语言入门学习
查看>>
小程序登录逻辑
查看>>