code_junkie

C++: Get MAC address of network adapters on Vista?

Nov 11th, 2011
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.06 KB | None | 0 0
  1. void getdMacAddresses(std::vector<std::string> &vMacAddresses;)
  2. {
  3. vMacAddresses.clear();
  4. IP_ADAPTER_INFO AdapterInfo[32]; // Allocate information for up to 32 NICs
  5. DWORD dwBufLen = sizeof(AdapterInfo); // Save memory size of buffer
  6. DWORD dwStatus = GetAdaptersInfo( // Call GetAdapterInfo
  7. AdapterInfo, // [out] buffer to receive data
  8. &dwBufLen); // [in] size of receive data buffer
  9.  
  10. //No network card? Other error?
  11. if(dwStatus != ERROR_SUCCESS)
  12. return;
  13.  
  14. PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo;
  15. char szBuffer[512];
  16. while(pAdapterInfo)
  17. {
  18. if(pAdapterInfo->Type == MIB_IF_TYPE_ETHERNET)
  19. {
  20. sprintf_s(szBuffer, sizeof(szBuffer), "%.2x-%.2x-%.2x-%.2x-%.2x-%.2x"
  21. , pAdapterInfo->Address[0]
  22. , pAdapterInfo->Address[1]
  23. , pAdapterInfo->Address[2]
  24. , pAdapterInfo->Address[3]
  25. , pAdapterInfo->Address[4]
  26. , pAdapterInfo->Address[5]
  27. );
  28. vMacAddresses.push_back(szBuffer);
  29. }
  30. pAdapterInfo = pAdapterInfo->Next;
  31.  
  32. }
  33. }
Add Comment
Please, Sign In to add comment