Jak mówi tytuł, starałem się to osiągnąć przez większą część dnia. Każda pomoc zostanie zaakceptowana.Jak wyliczyć karty sieciowe i uzyskać ich adresy MAC w Win32 API C++?
10
A
Odpowiedz
8
Kod ten powinien działać:
{
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;
}
4
trzeba tylko opanować API IPhelper ... to jest link do get you started, z przykładami robi tylko to, czego potrzebujesz.
Powiązane problemy
- 1. Jak wyliczyć wszystkie właściwości w obiekcie i uzyskać ich wartości?
- 2. Interfejs API win32 win32 api
- 3. Adresy MAC w JavaScript
- 4. Zmienna deklaracja i ich adresy pamięci w C
- 5. Jak uzyskać statystyki karty sieciowej w systemie Linux/Mac OSX?
- 6. Trello API uzyskać komentarze karty
- 7. Jak automatycznie pobrać deklaracje Win32 API w języku C#?
- 8. Jak wyliczyć woluminy w systemie Mac OS X?
- 9. Jak wyliczyć dźwięk z urządzenia w C#
- 10. Jak filtrować adresy MAC za pomocą tcpdump?
- 11. Jak uzyskać nazwę wątku Win32?
- 12. Jak przekazać zerowy wskaźnik do Win32 API w C# .Net?
- 13. Jak przechwytywać ramki sieciowe w module jądra
- 14. Jak programowo uzyskać dostęp do karty SIM?
- 15. Jak wyliczyć z enum w Objective-C?
- 16. Najlepszy sposób programowo skonfigurować karty sieciowe w .NET
- 17. Jak uzyskać indeks karty sieciowej?
- 18. Jak wyliczyć uchwyt procesu?
- 19. Jak wyłączyć/włączyć połączenie sieciowe w C#
- 20. Jak uzyskać liczbę cykli procesora w Win32?
- 21. Adresy IP dla domen i ich subdomen są takie same?
- 22. Jak programowo wykryć zmapowane dyski sieciowe w systemie i nazwy ich serwerów?
- 23. Jak korzystać z API Win32 z pythonem?
- 24. Jak uzyskać adres rozgłoszeniowy hosta domyślnej karty sieciowej? C#
- 25. Jak wyliczyć przez JObject?
- 26. Funkcja win32 api, aby uzyskać bieżącą prędkość procesora
- 27. Czy można wyliczyć enum w C++?
- 28. Jak wygenerować pakiety sieciowe za pomocą C/C++
- 29. WinRT jako zamiennik Win32 API
- 30. Object oriented C++ win32?
Po co przydzielać pAdapterInfos za pomocą funkcji mallock zamiast stosu? – user626528
Ponieważ bufor jest większy niż tylko jedna struktura. Pętla aktualizuje parametr wielkości. – Christopher
(tak, zdaję sobie sprawę, że ta odpowiedź jest stara.) Czy możesz wyjaśnić, w jaki sposób ten kod działa w prozie, zamiast zawierać kilka uwag wyjaśniających fragmenty? –