Advertisement
Guest User

Untitled

a guest
May 26th, 2019
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.73 KB | None | 0 0
  1. BOOL WINAPI GetPhyMacAddress(char* strServiceName)
  2. {
  3. BOOL bRet = FALSE;
  4. char pstrBuf[512];
  5. wsprintfA(pstrBuf, "\\\\.\\%s", strServiceName);
  6.  
  7. HANDLE hDev = CreateFileA(pstrBuf, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, 0);
  8. if (hDev != INVALID_HANDLE_VALUE)
  9. {
  10. int inBuf;
  11. BYTE outBuf[256] = { 0 };
  12. DWORD BytesReturned;
  13. inBuf = OID_802_3_PERMANENT_ADDRESS;
  14.  
  15. if (DeviceIoControl(hDev, IOCTL_NDIS_QUERY_GLOBAL_STATS, (LPVOID)&inBuf, 4, outBuf, 256, &BytesReturned, NULL))
  16. {
  17. sprintf(pstrBuf, "Mac: %02X-%02X-%02X-%02X-%02X-%02X\n",
  18. outBuf[0], outBuf[1], outBuf[2], outBuf[3], outBuf[4], outBuf[5]);
  19. printf(pstrBuf);
  20. bRet = TRUE;
  21. }
  22.  
  23. inBuf = OID_802_3_CURRENT_ADDRESS;
  24. if (DeviceIoControl(hDev, IOCTL_NDIS_QUERY_GLOBAL_STATS, (LPVOID)&inBuf, 4, outBuf, 256, &BytesReturned, NULL))
  25. {
  26. sprintf(pstrBuf, "Mac: %02X-%02X-%02X-%02X-%02X-%02X\n",
  27. outBuf[0], outBuf[1], outBuf[2], outBuf[3], outBuf[4], outBuf[5]);
  28. printf(pstrBuf);
  29. bRet = TRUE;
  30. }
  31. CloseHandle(hDev);
  32. }
  33. return bRet;
  34. }
  35.  
  36. BOOL GetMacAddress()
  37. {
  38. UINT uErrorCode = 0;
  39. PIP_ADAPTER_INFO pAda;
  40. ULONG uSize = 0;
  41. DWORD dwResult = GetAdaptersInfo(NULL, &uSize);
  42.  
  43. if (dwResult == ERROR_BUFFER_OVERFLOW)
  44. {
  45. pAda = (PIP_ADAPTER_INFO)new BYTE[uSize];
  46. PIP_ADAPTER_INFO piai = pAda;
  47. dwResult = GetAdaptersInfo(piai, &uSize);
  48. if (ERROR_SUCCESS == dwResult)
  49. {
  50. while (piai)
  51. {
  52. printf("AdapterName: %s\n", piai->AdapterName);
  53. printf("Description :%s\n", piai->Description);
  54. printf("Type :%d\n", piai->Type);
  55. GetPhyMacAddress(piai->AdapterName);
  56. printf("\n");
  57. piai = piai->Next;
  58. }
  59. }
  60. delete[] pAda;
  61. }
  62. return TRUE;
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement