Advertisement
Bambus3k

Untitled

Jul 25th, 2018
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.34 KB | None | 0 0
  1. const char* GetMacAddress(){
  2. PIP_ADAPTER_INFO AdapterInfo;
  3. DWORD dwBufLen = sizeof(AdapterInfo);
  4. char *mac_addr = (char*)malloc(17);
  5.  
  6. AdapterInfo = (IP_ADAPTER_INFO *)malloc(sizeof(IP_ADAPTER_INFO));
  7. if (!AdapterInfo) {
  8. //printf("Error allocating memory needed to call GetAdaptersinfo\n");
  9. return "";
  10. }
  11.  
  12. // Make an initial call to GetAdaptersInfo to get the necessary size into the dwBufLen variable
  13. if (GetAdaptersInfo(AdapterInfo, &dwBufLen) == ERROR_BUFFER_OVERFLOW) {
  14.  
  15. AdapterInfo = (IP_ADAPTER_INFO *)malloc(dwBufLen);
  16. if (!AdapterInfo) {
  17. //printf("Error allocating memory needed to call GetAdaptersinfo\n");
  18. return "";
  19. }
  20. }
  21.  
  22. CHAR _MACFORMAT[] = { '%', '0', '2', 'X', ':', '%', '0', '2', 'X', ':', '%', '0', '2', 'X', ':', '%', '0', '2', 'X', ':', '%', '0', '2', 'X', ':', '%', '0', '2', 'X', 0x0 }; //"%02X:%02X:%02X:%02X:%02X:%02X"
  23. if (GetAdaptersInfo(AdapterInfo, &dwBufLen) == NO_ERROR) {
  24. PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo;// Contains pointer to current adapter info
  25. do {
  26. sprintf(mac_addr, _MACFORMAT,
  27. pAdapterInfo->Address[0], pAdapterInfo->Address[1],
  28. pAdapterInfo->Address[2], pAdapterInfo->Address[3],
  29. pAdapterInfo->Address[4], pAdapterInfo->Address[5]);
  30. return mac_addr;
  31.  
  32. pAdapterInfo = pAdapterInfo->Next;
  33. } while (pAdapterInfo);
  34. }
  35. free(AdapterInfo);
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement