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...