2012-03-06 215 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结构的。