网络编程 UDP 改变网关和网卡名字

在程序里动态改变网关和网卡名字

1,改变网卡名字

#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <netinet/in.h>
#include <net/if.h> int main(){
int fd;
ifreq ifr; fd = socket(AF_INET, SOCK_DGRAM, 0); strncpy(ifr.ifr_name, "lo", IFNAMSIZ - 1);
strncpy(ifr.ifr_newname, "newloname", IFNAMSIZ - 1);
if(ioctl(fd, SIOCSIFNAME, &ifr) != 0){
perror("ioctl");
return 1;
}
close(fd);
return 0;
}

github源代码

2,改变网关

#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <netinet/in.h>
#include <net/if.h>
#include <arpa/inet.h> int main(){
int fd;
ifreq ifr;
sockaddr_in *s_in; fd = socket(AF_INET, SOCK_DGRAM, 0); s_in = (sockaddr_in*)&ifr.ifr_addr; s_in->sin_family = AF_INET;
inet_pton(AF_INET, "255.0.0.0", &s_in->sin_addr); strncpy(ifr.ifr_name, "enp0s3", IFNAMSIZ - 1); if(ioctl(fd, SIOCSIFNETMASK, &ifr) != 0){
perror("ioctl");
return 1;
}
close(fd);
return 0;
}

github源代码

c/c++ 学习互助QQ群:877684253

本人微信:xiaoshitou5854

最新文章

  1. 谈谈DOMContentLoaded:Javascript中的domReady引入机制
  2. OAuth 2 的简单理解
  3. 【SQL】关于存储过程调用过程中事务的点点滴滴
  4. C盘清理大作战
  5. CentOS 6.3下rsync服务器的安装与配置[转]
  6. taskctl实现自定义mysql存储过程作业类型调用
  7. suds库使用说明官方文档
  8. unittest测试框架详谈及实操(二)
  9. Windows字符集安装
  10. 【XSY1905】【XSY2761】新访问计划 二分 树型DP
  11. MAC 调用GCC 提示xcrun: error: invalid active developer path
  12. Redis入门到高可用(一)——初识Redis
  13. The Little Prince-12/03
  14. Debug 路漫漫-06
  15. tensorflow读取数据
  16. Ajax 学习(一)
  17. (转)web开发流程
  18. Spring Boot干货系列:(三)启动原理解析
  19. [SQL Server] 无法连接到本地数据库
  20. 如何选择合适的Qt5版本?

热门文章

  1. 为什么说Java中只有值传递
  2. Docker系列教程01-Centos7安装新版Docker教程(10步)
  3. 如何优雅的利用Windows服务来部署ASP.NET Core程序
  4. 【Git】(2)---checkout、branch、log、diff、.gitignore
  5. 你以为的MongoDB副本集的高可用是真的高可用了吗?
  6. leetcode — recover-binary-search-tree
  7. Java开发知识之Java数组
  8. SpringMVC学习笔记之一(SpringMVC架构及与Mybatis整合)
  9. Mybatis学习笔记之二(动态mapper开发和spring-mybatis整合)
  10. Android安全–Dex文件格式详解