c/c++ 网络编程 UDP 改变网关和网卡名字
2024-10-19 15:27:05
网络编程 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;
}
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;
}
c/c++ 学习互助QQ群:877684253
本人微信:xiaoshitou5854
最新文章
- 谈谈DOMContentLoaded:Javascript中的domReady引入机制
- OAuth 2 的简单理解
- 【SQL】关于存储过程调用过程中事务的点点滴滴
- C盘清理大作战
- CentOS 6.3下rsync服务器的安装与配置[转]
- taskctl实现自定义mysql存储过程作业类型调用
- suds库使用说明官方文档
- unittest测试框架详谈及实操(二)
- Windows字符集安装
- 【XSY1905】【XSY2761】新访问计划 二分 树型DP
- MAC 调用GCC 提示xcrun: error: invalid active developer path
- Redis入门到高可用(一)——初识Redis
- The Little Prince-12/03
- Debug 路漫漫-06
- tensorflow读取数据
- Ajax 学习(一)
- (转)web开发流程
- Spring Boot干货系列:(三)启动原理解析
- [SQL Server] 无法连接到本地数据库
- 如何选择合适的Qt5版本?
热门文章
- 为什么说Java中只有值传递
- Docker系列教程01-Centos7安装新版Docker教程(10步)
- 如何优雅的利用Windows服务来部署ASP.NET Core程序
- 【Git】(2)---checkout、branch、log、diff、.gitignore
- 你以为的MongoDB副本集的高可用是真的高可用了吗?
- leetcode — recover-binary-search-tree
- Java开发知识之Java数组
- SpringMVC学习笔记之一(SpringMVC架构及与Mybatis整合)
- Mybatis学习笔记之二(动态mapper开发和spring-mybatis整合)
- Android安全–Dex文件格式详解