2012-03-06 3 views
0

Я использую mingw для компиляции моей программы cpp, которая должна получить MAC-адрес. В unix sys/ioctl.h предоставляет «SIOCGIFHWADDR» для его чтения. Но для mingw win32 есть замена для ioctl, названного как ioctlsocket. Я использую его, но у него нет команды «SIOCGIFHWADDR».SIOCGIFHWADDR для ioctlsocket в mingw

Как читать MAC-адрес устройства с помощью ioctlsocket?

Заранее спасибо.

Ниже функция Я использую

ioctl(fd, SIOCGIFHWADDR, &ifr); //Unix it works 
ioctlsocket(fd, SIOCGIFHWADDR, &ifr); //win32, doesn't work 
+0

Что вы имеете в виду под «не работает» ? –

ответ

0

Есть несколько различных API-интерфейсов Windows, которые будут получать локальный адрес MAC для вас.

GetAdaptersAddresses должно работать на вас. (Посмотрите на члена PhysicalAdddress в возвращаемом наборе IP_ADAPTER_ADDRESSES.

Вы можете также использовать GetIfTable и посмотреть на член bPhysAddr в возвращаемом наборе MIB_IFROW структур.