永发信息网

如何通过C的方式在android NDK下面查找本机的mac地址

答案:2  悬赏:60  手机版
解决时间 2021-04-06 16:21
如何通过C的方式在android NDK下面查找本机的mac地址
最佳答案
bool GetMac(char *pBuffer)  
{  
    struct ifreq *ifr;  
    struct ifconf ifc;  
    int s, i;  
    int numif;  

    // find number of interfaces.  
    memset(&ifc, 0, sizeof(ifc));  
    ifc.ifc_ifcu.ifcu_req = NULL;  
    ifc.ifc_len = 0;  

    if ((s = ::socket(PF_INET, SOCK_STREAM, 0)) < 0)   
    {  
        CCLog("SgProfile::GetMac 111111");  
        return false;  
    }  

    if (ioctl(s, SIOCGIFCONF, &ifc) < 0)  
    {  
        CCLog("SgProfile::GetMac 222222");  
        return false;  
    }  

    if ((ifr = (ifreq*) malloc(ifc.ifc_len)) == NULL)  
    {  
        CCLog("SgProfile::GetMac 333333");  
        return false;  
    }  

    ifc.ifc_ifcu.ifcu_req = ifr;  

    if (ioctl(s, SIOCGIFCONF, &ifc) < 0)  
    {  
        CCLog("SgProfile::GetMac 333333 ioctl SIOCGIFCONF error!");  
        return false;  
    }  

    numif = ifc.ifc_len / sizeof(struct ifreq);  

    for (i = 0; i < numif; i++)  
    {  
        struct ifreq *r = &ifr[i];  
        struct sockaddr_in *sin = (struct sockaddr_in*)&r->ifr_addr;  
        if (!strcmp(r->ifr_name, "lo"))  
            continue; // skip loopback interface  

        // get MAC address  
        if(ioctl(s, SIOCGIFHWADDR, r) < 0)  
        {  
            CCLog("SgProfile::GetMac 333333 ioctl(SIOCGIFHWADDR) error!");  
            continue;  
        }  

        memcpy(pBuffer,r->ifr_hwaddr.sa_data,6);   
        close(s);  
        free(ifr);  

        return true;  
     }  

     return false;  
}
全部回答
不明白啊 = =!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
洗完澡吃东西更消化呢还是吃完东西在洗澡更校
大胆求教有关国学名句,中国国学经典哲理名句
单选题自2011年9月1日起,工资、薪金个人所得
前天和男朋友吵架了,不过马上和好了,和好后
小于等于2.0L自然吸气发动机的最大的马力,1.
半命题作文—《没想到,我如此…》800字作文
请问带柔字有什么好听的名字
柠檬汗擦脸上还要洗脸吗?
苹果电脑空格键是哪个,苹果电脑windows8系统
张的繁体字写法
西游记中最讨厌的人物原因
一个长方体长宽高分别是10厘米、8厘米、5厘米
煤矿实际开采回采率是多少
江油可以买车票进站送人不上车吗
形容姐妹情深的诗句。
推荐资讯
被百度收录的文库一定被豆丁收录吗?收录的概
病毒性感冒反复发热,正常吗
一般卡珠弹弓用的多少mm的皮筋
mc另类 东波扒苞米伴奏是什么歌跪求
单选题选出划线部分发音不同的词A.bowlB.wind
イメージ的意思
怎样偷偷监控一个人的微信聊天内
手机下载了一个字体,之后就开不了机了,怎么
租房门牌号是23号好不好
拉林铁路建设进展如何?
佳能IP2780打印机使用什么连供墨水最好
2017湖南泸溪补习学校文科刘颖高考分是多少?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?