zoukankan      html  css  js  c++  java
  • 修改MAC地址的方法(未测试)

    用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; }


     
  • 相关阅读:
    文件的权限
    正则表达式
    软硬链接的学习
    linux系统中的文件类型和扩展名
    把数组排成最小的数
    整数中1出现的次数(从1到n整数中1出现的次数)
    最小的K个数
    连续子数组的最大和
    数组中出现次数超过一半的数字
    字符串的排列
  • 原文地址:https://www.cnblogs.com/zhangxuan/p/6409782.html
Copyright © 2011-2022 走看看