我想要上面的。我找到了IP Helper API,它可以工作。唯一的问题是,在比Vista更老的系统上,我无法识别适配器是无线的还是普通的以太网。我也需要支持WinXP和Server 2003。
以下是文档(IP助手)的相关引用:
IEEE 802.11无线网络接口。注意,此适配器类型将在Windows及更高版本上返回。在Windows 2003和>Windows上,IEEE 802.11无线网络接口返回适配器类型的>MIB_IF_TYPE_ETHERNET。
,那么在WinXP/Server2003 2003及更高版本上识别无线适配器并获取它们的MAC地址的好方法是什么呢?
发布于 2013-02-19 03:26:44
GetAdapterAddresses是windows的一部分,应该同时向您提供有关mac地址和NIC类型的信息。
调用返回指向适配器链接列表的结构。
请确保不对结构大小进行硬编码以维护windows版本之间的可移植性,因为IP_ADAPTER_ADDRESSES
结构已在不同版本之间更改了大小。
编辑:
这显然只给出mac地址,因为它只在Vista之后报告正确的类型
但是,GetIfTable返回一个MIB_IFTABLE
结构,从它可以读取一个具有dwType的MIB_IFROW
,它可能是IF_TYPE_IEEE80211类型的,也可能不是IF_TYPE_IEEE80211类型的。这并没有说明这对于Vista来说是特别的,并且应该对XP有效,除非MS把他们的文档搞砸了。
这两个都应该有一个物理地址,所以你应该能够匹配这两个条目来识别一个单一的卡。
发布于 2013-02-20 00:36:53
如果您要从头开始支持XP,这是在将本机Wifi API引入XP之前(SP2&3支持本机Wifi API)。
我认为通过WMI还是有机会的。您可能会在这个类中创建一个Win32_NetworkAdapter
(一个废弃的WMI类),您应该能够提取AdapterTypeID
,它可以告诉它是否是无线设备,MACAddress
可以提供您的MAC地址。
因此,我认为您的选择是要么支持Windows 2及更高版本,要么必须与WMI和不推荐的类集成。看来无论如何都有骆驼要吞咽。
https://stackoverflow.com/questions/14955874
复制相似问题