You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何WifiAdapter.ScanAsync()与Windows11显示的WiFi列表不一致?

Windows 11 WiFi列表筛选规则及C#实现一致逻辑

核心筛选规则

Windows 11设置中「显示可用网络」的列表是经过多维度筛选和合并的,核心规则如下:

  • 弱信号过滤:默认过滤掉RSSI(接收信号强度指示)低于-85dBm左右的网络(阈值会根据设备硬件、当前环境动态微调,范围大致在-80~-90dBm之间)。
  • 同SSID合并:相同SSID的多个AP(不同BSSID)会合并为单个条目,仅显示该SSID下信号最强的AP信息。
  • 隐藏网络过滤:未被用户保存的隐藏SSID网络默认不会显示;仅当用户手动添加过该隐藏网络后,才会出现在列表中。
  • 优先级排序:当前已连接的网络会排在列表最顶部,剩余网络按信号强度从高到低排序。

C#实现一致逻辑的步骤

基于WifiAdapter.ScanAsync()的原始扫描结果,通过以下步骤处理即可匹配Windows的列表表现:

1. 获取原始扫描结果

// 获取第一个可用的WiFi适配器
async Task<string> GetFirstWifiAdapterId()
{
    var result = await WifiAdapter.FindAllAdaptersAsync();
    return result.FirstOrDefault()?.AdapterId;
}

var adapter = await WifiAdapter.FromIdAsync(await GetFirstWifiAdapterId());
if (adapter == null)
{
    // 处理无可用适配器的情况
    return;
}
await adapter.ScanAsync();
var rawNetworks = adapter.NetworkReport.AvailableNetworks;

2. 过滤弱信号网络

// 以-85dBm为阈值,过滤弱信号
var signalFiltered = rawNetworks.Where(n => n.GetSignalStrength().InDecibels >= -85);

3. 合并同SSID的AP

按SSID(忽略大小写)分组,每组保留信号最强的网络:

var ssidMerged = signalFiltered
    .GroupBy(n => n.Ssid.ToLowerInvariant())
    .Select(g => g.OrderByDescending(n => n.GetSignalStrength().InDecibels).First());

4. 过滤未保存的隐藏网络

先获取用户已保存的WiFi配置,仅保留已保存的隐藏网络:

var savedProfiles = await WifiNetworkProfile.GetAllProfilesAsync(adapter);
var savedSsids = new HashSet<string>(savedProfiles.Select(p => p.Ssid.ToLowerInvariant()));
var hiddenFiltered = ssidMerged.Where(n => !n.IsHidden || savedSsids.Contains(n.Ssid.ToLowerInvariant()));

5. 按Windows规则排序

将已连接网络放在最前,剩余按信号强度降序排列:

var currentConnection = adapter.NetworkReport.CurrentConnection;
var finalNetworks = hiddenFiltered
    .OrderByDescending(n => currentConnection != null && 
        n.Ssid.Equals(currentConnection.Ssid, StringComparison.OrdinalIgnoreCase))
    .ThenByDescending(n => n.GetSignalStrength().InDecibels)
    .ToList();

补充说明

  • 信号阈值可根据实际测试调整:部分设备或环境下,Windows的阈值可能略有不同,可通过对比系统列表微调数值。
  • 安全类型兼容:Windows会过滤掉不支持的过时安全类型(如WEP),如果需要匹配这一点,可额外添加n.SecuritySettings.NetworkAuthenticationType的过滤逻辑。
  • 动态调整:Windows的筛选逻辑可能随系统更新微调,建议定期对比系统列表验证实现效果。

内容的提问来源于stack exchange,提问作者komodosp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 15:42:43