首页 文章

如何用C / C确定Windows中连接的Wifi WLAN接口?

提问于
浏览
3

On Windows, how can I determine which Wifi WLAN interface returned by WlanGetAvailableNetworkList() is connected?

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

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

在Mac上,我使用 CoreWLAN 基础中的 scanForNetworksWithSSID ,结果有一个连接的 bssid 字段,我可以从扫描结果中与每个 bssid 进行比较,以确定它们中的哪一个是连接的 . 我正在寻找类似的Windows解决方案 .

谢谢!

1 回答

  • 3

    Answer

    答案是使用 WlanQueryInterface() (操作上类似于并与_2783912并行使用)来确定连接适配器的WLAN_CONNECTION_ATTRIBUTESWLAN_ASSOCIATION_ATTRIBUTES . 有一个示例演示了在this页面底部的MSDN文档中使用 WlanQueryInterface() .

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

    注意:我也可以比较BSSID值以获得类似且可能更可靠的结果 .

相关问题