如何使用C / C ++在Windows中确定连接的WLAN WLAN接口?

Windows上,如何确定WlanGetAvailableNetworkList()返回的WLAN WLAN接口连接?

我成功使用Windows 8上的WlanGetAvailableNetworkList()来扫描WLAN WLAN接入点列表,并确定其SSID,BSSID,信号强度和其他信息。 我正在关注此 MSDN参考页面上的示例。

然而,对于我收到的所有接口WLAN_INTERFACE_INFO ,我无法确定如何分辨当前连接的接入点(即wlan_interface_state_connected )。

在Mac上,我使用了CoreWLAN基础上的CoreWLAN ,结果有一个连接的 bssid字段,我可以与扫描结果中的每个bssid进行比较,以确定哪个连接。 我正在寻找一个类似的Windows解决scheme。

谢谢!

答案是使用WlanQueryInterface() (在操作上与WlanGetAvailableNetworkList()并行使用)来确定连接的适配器的WLAN_CONNECTION_ATTRIBUTES和WLAN_ASSOCIATION_ATTRIBUTES 。 有一个示例演示了在WlanQueryInterface()底部的MSDN文档中使用WlanQueryInterface()

我通过调用WlanQueryInterface()来解决问题,以确定connectedSSID的WLAN WLAN适配器的connectedSSID(如果有的话)。 然后,我将它与WlanGetAvailableNetworkList()引用的每个适配器的SSID值进行比较。 匹配项(如果有)确定所连接的扫描的适配器。

注意:我也可以比较BSSID值以得到类似的结果,也可能更可靠。