SIOCGIFHWADDR用于mingw中的ioctlsocket

时间:2012-03-06 12:17:08

标签: winapi mingw ioctl

我正在使用mingw编译我的cpp程序,该程序必须获取MAC地址。在unix中,sys / ioctl.h 提供'SIOCGIFHWADDR'来阅读它。但对于mingw win32,有一个名为ioctlsocket的ioctl的替代品。我正在使用它,但它没有'SIOCGIFHWADDR'命令。

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

提前致谢。

以下是我正在使用的功能

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

1 个答案:

答案 0 :(得分:0)

有一些不同的Windows API可以为您获取本地MAC地址。

GetAdaptersAddresses应该适合你。 (查看返回的IP_ADAPTER_ADDRESSES集合中的PhysicalAdddress成员。

您也可以使用GetIfTable并查看返回的MIB_IFROW结构集中的bPhysAddr成员。