`

an alternative way to get mac in windows

    博客分类:
  • c++
阅读更多

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

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics