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


     
  • 相关阅读:
    理解消息循环和窗口过程(转)
    对话框和控件编程(转)
    俄罗斯方块
    男生女生配(抽屉原理)
    翻转吧,字符串
    数塔
    Pseudoprime numbers伪素数(快速幂+判定素数)
    shǎ崽 OrOrOrOrz
    As Easy As A+B
    求素数(筛选法)
  • 原文地址:https://www.cnblogs.com/zhangxuan/p/6409782.html
Copyright © 2011-2022 走看看