an alternative way to get mac in windows

ref: http://www.codeguru.com/cpp/i-n/network/networkinformation/article.php/c5451/Three-ways-to-get-your-MAC-address.htm

 

Note: this function works for windows 2000/xp or above only... and if there are more than one network cards, this function only get the first one... for example:, if vmare workstation exists, this function will return a mac address for vmnet8 in my machine..

 

use GetAdaptersInfo instead to retrieve all nic info

 

#include <string>

#include <windows.h>
#include "boost/format.hpp"

 

using namespace std;
using boost::format;
using boost::io::str;

 

string getMac()
{
    unsigned char MACData[6];
    UUID uuid;
    UuidCreateSequential(&uuid);
    for(int i = 2; i<8; ++i)
    {
        MACData[i-2] = uuid.Data4[i];
    }
    format f("%02X-%02X-%02X-%02X-%02X-%02X");
    f % (int)MACData[0] % (int)MACData[1] %(int)MACData[2] %(int)MACData[3] %(int)MACData[4] %(int)MACData[5];
    return f.str();
}

 

link Rpcrt4.lib...

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值