2

我有这个:

WLAN_AVAILABLE_NETWORK_LIST *wlanNetworkList = (WLAN_AVAILABLE_NETWORK_LIST*)WlanAllocateMemory(sizeof(WLAN_AVAILABLE_NETWORK_LIST));

我使用 WlanGetAvailableNetworkList() 函数获取有关网络的信息。

但是在这个信息中没有mac地址或通道。如何得到它?

4

2 回答 2

4

我认为您要查找的信息在WLAN_BSS_ENTRY结构中。

由于网络可能有多个接入点,因此至少对我来说网络没有单个 MAC 地址是有意义的(也考虑 ad-hoc 网络),因此 MAC 地址不是网络的属性(不是WLAN_AVAILABLE_NETWORK结构的数据成员)。

使用WlanGetNetworkBssListmsdn 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顾名思义。

于 2012-05-30T17:33:41.047 回答
-1

也许你会先尝试使用 WlanScan。我尝试在汇编中编写 WlanApi,goasm。我使用 WlanGetNetworkBssList。一切正常,作为回报,我得到了 6 个字节的 mac,但只有前 3 个字节与我的路由器的 Mac 相同。我不明白为什么。也许我在 WlanApi.h 中写错了 sruct 我仍在学习 ASM WlanApi.h MyCode

于 2014-02-02T07:44:26.850 回答