2012-03-06 78 views
0

我正在使用mingw編譯我的cpp程序,它必須獲取MAC地址。在unix中,sys/ioctl.h 提供'SIOCGIFHWADDR'來讀取它。但是對於mingw win32,ioctl被命名爲ioctlsocket。我正在使用它,但它沒有'SIOCGIFHWADDR'命令。SIOCGIFHWADDR for ioctlsocket in mingw

如何使用ioctlsocket讀取硬件MAC地址?

在此先感謝。

以下是我使用

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

你說的「不工作」的意思? – 2012-03-06 15:58:58

回答

0

的功能有不同的Windows API,將讓當地的MAC地址,你的屈指可數。

GetAdaptersAddresses應該爲你工作。 (在返回set的IP_ADAPTER_ADDRESSES看看PhysicalAdddress成員。

您還可以使用GetIfTable,並期待在bPhysAddr成員在返回set MIB_IFROW結構的。