博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
修改MAC地址的方法(未测试)
阅读量:4328 次
发布时间:2019-06-06

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

用ioctl控制,通过SIOCGIFHWADDR获取MAC地址,SIOCSIFHWADDR设置MAC地址,不过在设 置MAC地址之前,要先把网卡down掉,设置好了以后,再UP起来。
#include 
/* for socket(2) and related bits and pieces */#include
/* for socket(2) */#include
/* for struct ifreq */#include
/* for ARPHRD_ETHER */#include
/* for IOCTL's */#include
/* for fprintf etc */#include
/* for close */
int main(int argc,char **argv){    struct ifreq ifr;    int skfd;    if (argc<3)  {        fprintf(stderr,"usage:/n%s interface hwaddr/n",argv[1]);        return 1;    }    /* Fill in the structure */    snprintf(ifr.ifr_name, IFNAMSIZ, "%s", argv[1]);    ifr.ifr_hwaddr.sa_family = ARPHRD_ETHER;    /* TODO: write some code to parse argv[2] into ifr.ifr_hwaddr.sa_data */    /* memcpy(&ifr.ifr_hwaddr.sa_data, argv[2], sizeof(ether.address)); */    /* Create a socket fd */    skfd = socket(PF_INET,SOCK_STREAM,0);    /* call the IOCTL */    if (ioctl(skfd, SIOCSIFHWADDR, &ifr) < 0) {        perror("ioctl(SIOCSIFHWADDR)");        return 1;    }
 
 

转载于:https://www.cnblogs.com/zhangxuan/p/6409782.html

你可能感兴趣的文章
HTTP协议
查看>>
CentOS7 重置root密码
查看>>
Centos安装Python3
查看>>
PHP批量插入
查看>>
laravel连接sql server 2008
查看>>
Ubuntu菜鸟入门(五)—— 一些编程相关工具
查看>>
valgrind检测linux程序内存泄露
查看>>
Hadoop以及组件介绍
查看>>
1020 Tree Traversals (25)(25 point(s))
查看>>
第一次作业
查看>>
“==”运算符与equals()
查看>>
单工、半双工和全双工的定义
查看>>
Hdu【线段树】基础题.cpp
查看>>
时钟系统
查看>>
BiTree
查看>>
5个基于HTML5的加载动画推荐
查看>>
水平权限漏洞的修复方案
查看>>
静态链接与动态链接的区别
查看>>
Android 关于悬浮窗权限的问题
查看>>
如何使用mysql
查看>>