Как говорится в названии, я пытался добиться этого в течение большей части дня. Любая помощь будет оценена.
Как перечислить сетевые адаптеры и получить их MAC-адреса в Win32 API С++?
Ответ 1
Этот код должен работать:
{
ULONG outBufLen = 0;
DWORD dwRetVal = 0;
IP_ADAPTER_INFO* pAdapterInfos = (IP_ADAPTER_INFO*) malloc(sizeof(IP_ADAPTER_INFO));
// retry up to 5 times, to get the adapter infos needed
for( int i = 0; i < 5 && (dwRetVal == ERROR_BUFFER_OVERFLOW || dwRetVal == NO_ERROR); ++i )
{
dwRetVal = GetAdaptersInfo(pAdapterInfos, &outBufLen);
if( dwRetVal == NO_ERROR )
{
break;
}
else if( dwRetVal == ERROR_BUFFER_OVERFLOW )
{
free(pAdapterInfos);
pAdapterInfos = (IP_ADAPTER_INFO*) malloc(outBufLen);
}
else
{
pAdapterInfos = 0;
break;
}
}
if( dwRetVal == NO_ERROR )
{
IP_ADAPTER_INFO* pAdapterInfo = pAdapterInfos;
while( pAdapterInfo )
{
IP_ADDR_STRING* pIpAddress = &(pAdapterInfo->IpAddressList);
while( pIpAddress != 0 )
{
//
// <<<<
// here pAdapterInfo->Address should contain the MAC address
// >>>>
//
pIpAddress = pIpAddress->Next;
}
pAdapterInfo = pAdapterInfo->Next;
}
}
free(pAdapterInfos);
return false;
}
Ответ 2
вам нужно только освоить API IPhelper... это ссылка на начать с, с примерами, которые делают именно то, что вам нужно.