我想知道是否有任何.Net类允许我知道我所连接的无线网络的SSID.到目前为止,我只发现下面链接的库.我能得到的最好还是应该用别的东西? 托管WiFi(http://www.codeplex.com/managedwifi)
利用WMI的方法适用于Windows XP,但它不再适用于Windows Vista.
我解决了使用该库的问题.结果很容易使用提供的类:
首先,我必须创建一个WlanClient对象
wlan = new WlanClient();
然后我可以使用以下代码获取PC连接到的SSID列表:
CollectionconnectedSsids = new Collection (); foreach (WlanClient.WlanInterface wlanInterface in wlan.Interfaces) { Wlan.Dot11Ssid ssid = wlanInterface.CurrentConnection.wlanAssociationAttributes.dot11Ssid; connectedSsids.Add(new String(Encoding.ASCII.GetChars(ssid.SSID,0, (int)ssid.SSIDLength))); }
我们使用的是托管wifi库,但是如果在查询过程中网络断开连接,它将引发异常。
尝试:
var process = new Process { StartInfo = { FileName = "netsh.exe", Arguments = "wlan show interfaces", UseShellExecute = false, RedirectStandardOutput = true, CreateNoWindow = true } }; process.Start(); var output = process.StandardOutput.ReadToEnd(); var line = output.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).FirstOrDefault(l => l.Contains("SSID") && !l.Contains("BSSID")); if (line == null) { return string.Empty; } var ssid = line.Split(new[] { ":" }, StringSplitOptions.RemoveEmptyEntries)[1].TrimStart(); return ssid;