Вывести именно ethernet MAC address
Мне нужно передать в string переменную blueprint ue5 ethernet MAC address из c++, но выводиться не тот который нужен а последний из списка адаптеров.
#include "A_MySQL.h"
#include <winsock2.h>
#include <iphlpapi.h>
#pragma comment(lib, "iphlpapi.lib")
void AA_MySQL::MacAdress(FString& addr)
{
PIP_ADAPTER_INFO AdapterInfo;
DWORD dwBufLen = sizeof(IP_ADAPTER_INFO);
char* mac_addr = (char*)malloc(18);
AdapterInfo = (IP_ADAPTER_INFO*)malloc(sizeof(IP_ADAPTER_INFO));
if (AdapterInfo == NULL) {
printf("Error allocating memory needed to call GetAdaptersinfo\n");
free(mac_addr);
}
if (GetAdaptersInfo(AdapterInfo, &dwBufLen) == ERROR_BUFFER_OVERFLOW) {
free(AdapterInfo);
AdapterInfo = (IP_ADAPTER_INFO*)malloc(dwBufLen);
if (AdapterInfo == NULL) {
printf("Error allocating memory needed to call GetAdaptersinfo\n");
free(mac_addr);
}
}
if (GetAdaptersInfo(AdapterInfo, &dwBufLen) == NO_ERROR) {
PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo;
while (pAdapterInfo) {
if (pAdapterInfo->Type == MIB_IF_TYPE_ETHERNET)
{
do {
sprintf(mac_addr, "%02X:%02X:%02X:%02X:%02X:%02X",
pAdapterInfo->Address[0], pAdapterInfo->Address[1],
pAdapterInfo->Address[2], pAdapterInfo->Address[3],
pAdapterInfo->Address[4], pAdapterInfo->Address[5]);
addr = mac_addr;
pAdapterInfo = pAdapterInfo->Next;
} while (pAdapterInfo);
}
}
}
free(AdapterInfo);
}