首页 > 代码库 > 无线网络RSSI、SSID、BSSID

无线网络RSSI、SSID、BSSID

  获取无线网络,及无线网络的参数之前,我们先了解一下RSSI,SSID和BSSID分别是什么,当然你可以去百度或者维基百科查阅,我这里只是简单的说明一下。RSSI就是无线网络的信号强度,这个是和无线AP(如,路由器)的距离有关的一个参数。SSID就是无线AP的名称,即我们通常在我们手机或者笔记本中搜索到的无线网络名称,这个参数对于不同的无线AP可以是相同的,就当我们连接这个无线网络的时候就是无缝连接。但前提是无线AP必须的同类型的,否则不能进行无缝过渡或者网络漫游。BSSID类似于MAC地址一样,这个是唯一的,它能唯一的识别一个无线AP。

在编程中如何获取这些参数呢?其实主要是使用的NativeWifi,当然还有其他的实现,这里实现方式就是使用的NativeWifi。下来我们看看在程序中是怎么获取的。

 1 foreach (WlanClient.WlanInterface wlanIface in client.Interfaces)   2             {   3                 Wlan.WlanBssEntry[] bssworks = wlanIface.GetNetworkBssList();   4    5                 foreach (Wlan.WlanBssEntry bsswork in bssworks)   6                 {   7                     if (!lsApname.Contains(temp = ApMac(bsswork.dot11Bssid)))   8                     {   9                         continue;  10                     }  11                     lsDatainfo.Add(new dataInfo()  12                     {  13                         apname = temp,  14                         rssi = bsswork.rssi,  15                         apssid = GetStringForSSID(bsswork.dot11Ssid),  16                         time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")  17                     });  18                     tempApname.Add(temp);  19                 }  20             }  
1 static string GetStringForSSID(Wlan.Dot11Ssid ssid)  2         {  3             return Encoding.ASCII.GetString(ssid.SSID, 0, (int)ssid.SSIDLength);  4         }  

下面看看怎么获取BSSID参数值的函数:

 1 //获取无线AP的MAC地址   2         public string ApMac(byte[] macAddr)   3         {   4             string tMac = "";   5             for (int i = 0; i < macAddr.Length; i++)   6             {   7                 tMac += macAddr[i].ToString("x2").PadLeft(2, 0).ToUpper();   8             }   9             return tMac;  10         }  

 

无线网络RSSI、SSID、BSSID