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