我有这个:
WLAN_AVAILABLE_NETWORK_LIST *wlanNetworkList = (WLAN_AVAILABLE_NETWORK_LIST*)WlanAllocateMemory(sizeof(WLAN_AVAILABLE_NETWORK_LIST));
我通过WlanGetAvailableNetworkList()函数获取有关网络的信息。
但是在这个信息中没有mac地址或频道。 怎么做到的?
答案 0 :(得分:4)
我认为您要查找的信息位于WLAN_BSS_ENTRY
结构中。
由于网络中可能有多个接入点,因此对我来说至少没有一个网络的MAC地址(也考虑ad-hoc网络),因此,MAC地址不是网络的一部分属性(不是WLAN_AVAILABLE_NETWORK
结构的数据成员)。
使用WlanGetNetworkBssList
(msdn library entry),您可以获取特定网络(通过传递SSID)或无线LAN接口的所有网络的BSS条目列表。请注意,此函数会查询访问点:
为每个无线网络返回的信息列表还包含每个接入点为基础设施BSS网络或独立BSS网络(ad hoc网络)的网络对等体返回的信息元素列表。
顺便说一下:我认为您不需要为WLAN_AVAILABLE_NETWORK_LIST
结构分配缓冲区WlanAllocateMemory
。 MSDN:
如果调用成功,则返回的WLAN_AVAILABLE_NETWORK_LIST的缓冲区由WlanGetAvailableNetworkList函数分配。
然而,你必须通过WlanFreeMemory
释放函数为列表分配的内存。
另请参阅example in msdn library(该页面底部)。
编辑:示例有点令人困惑,有一个名为pBssList
的变量,其类型为PWLAN_AVAIBLE_NETWORK_LIST
而不是PWLAN_BSS_LIST
,顾名思义。
答案 1 :(得分:0)