虽然Win32_NetworkAdapter包含了属性PermanentAddress,但是在当前的WMI里只是个空值,微软目前还没有实现这个属性值。但是我们仍可以通过结合WMI和DeviceIoControl获取网卡原生MAC地址和当前MAC地址。其实现思路如下:
-
通过WMI获取物理网卡的 PNPDeviceID 。
-
将 PNPDeviceID 转化为网卡的设备路径名。
-
通过设备路径名,用CreateFile获取设备句柄。
-
通过设备句柄,用DeviceIoControl与驱动程序进行通信,获取网卡的原生MAC地址和当前MAC地址。
开发语言:Visual C++
支持平台:Windows
实现功能:
- 结合WMI和DeviceIoControl获取网卡原生MAC地址和当前MAC地址
下载地址:
V1.1 2010年05月23日
- 代码优化。
V1.0 2010年05月12日
- 完成正式版本。
接口函数:
WMI_MacAddress
源代码:
WMI_MACAddress.h
WMI_MACAddress.cpp