用ioctl控制,通过SIOCGIFHWADDR获取MAC地址,SIOCSIFHWADDR设置MAC地址,不过在设

置MAC地址之前,要先把网卡down掉,设置好了以后,再UP起来。
#include <sys/types.h>  /* for socket(2) and related bits and pieces */
#include <sys/socket.h> /* for socket(2) */
#include <net/if.h> /* for struct ifreq */
#include <net/if_arp.h> /* for ARPHRD_ETHER */
#include <sys/ioctl.h> /* for IOCTL's */
#include <stdio.h> /* for fprintf etc */
#include <unistd.h> /* 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; }

 

最新文章

  1. 7、java实现的两种单例模式
  2. [Java] java中方法可以重载
  3. CODEVS1291 火车线路
  4. schtasks确实可以绕过UAC,简直不可思议啊~~
  5. Qt for Android 程序禁止屏幕旋转
  6. [Entity Framework]获取部分字段的查询
  7. Web通信中的Get、Post方法
  8. ng-options
  9. android应用开发全程实录-你有多熟悉listview
  10. Directx11学习笔记【一】 最简单的windows程序HelloWin
  11. js中的对象创建与继承
  12. python3-随机生成10位包含数字和字母的密码
  13. sql学习笔记(三)—— 联表查询
  14. spring-boot-starter-thymeleaf 避坑指南
  15. response响应
  16. ABP module-zero +AdminLTE+Bootstrap Table+jQuery权限管理系统第十四节--后台工作者HangFire与ABP框架Abp.Hangfire及扩展
  17. 三点估算和PERT技术
  18. jquery 查询IP归属地
  19. Material Design(原质化设计)视觉设计语言规范 踏得网镜像
  20. 03_java之基本语法

热门文章

  1. Go第七篇之规范的接口
  2. CSS 常用语法与盒模型分析
  3. arm linux利用alsa驱动并使用usb音频设备
  4. 解决gvim中php函数提示php_funclist.dict无法生效的问题
  5. POJ 3687 Labeling Balls(拓扑排序)题解
  6. 论文笔记之:Human-level control through deep reinforcement learning
  7. Hadoop MapReduce编程 API入门系列之Crime数据分析(二十五)(未完)
  8. Ubuntu 14.04 下 安装Protocol Buffers
  9. QQ名片自动点赞
  10. yii2 高级版新建一个应用(api应用为例子)