Well, this is heavily dependant on your OS and compiler.. this works in XP and MSVC .NET 03:
#include <windows.h>
#include <Iphlpapi.h>
#pragma comment ( lib, "Iphlpapi.lib" )
static void GetMACaddress(void)
{
IP_ADAPTER_INFO AdapterInfo[16]; // Allocate information
// for up to 16 NICs
DWORD dwBufLen = sizeof(AdapterInfo); // Save memory size of buffer
DWORD dwStatus = GetAdaptersInfo( // Call GetAdapterInfo
AdapterInfo, // [out] buffer to receive data
&dwBufLen); // [in] size of receive data buffer
if(dwStatus == ERROR_SUCCESS) { // Verify return value is
// valid, no buffer overflow
PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo; // Contains pointer to
// current adapter info
do {
std::cout<< &pAdapterInfo->Address; // Print MAC address
pAdapterInfo = pAdapterInfo->Next; // Progress through
// linked list
}
while(pAdapterInfo); // Terminate if last adapter
}
}
int main( void ) {
GetMACaddress();
return 0;
}
Don't know if it's what you want. Searching always helps. http://www.codeguru.com/Cpp/I-N/network/networkinformation/article.php/c5451