在Windows Vista上获取我使用C#.Net连接的无线网络的SSID

我想知道是否有任何.Net类允许我知道我所连接的无线网络的SSID。 到目前为止,我只发现下面链接的库。 我能得到的最好还是我应该用别的东西? 托管WiFi ( http://www.codeplex.com/managedwifi )

利用WMI的方法适用于Windows XP,但它不再适用于Windows Vista。

我决定使用该库。 结果很容易使用提供的类:

首先,我必须创建一个WlanClient对象

wlan = new WlanClient(); 

然后我可以使用以下代码获取PC连接到的SSID列表:

 Collection connectedSsids = 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))); } 

看起来这会做你想要的:

 ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\WMI", "SELECT * FROM MSNdis_80211_ServiceSetIdentifier"); foreach (ManagementObject queryObj in searcher.Get()) { Console.WriteLine("-----------------------------------"); Console.WriteLine("MSNdis_80211_ServiceSetIdentifier instance"); Console.WriteLine("-----------------------------------"); if(queryObj["Ndis80211SsId"] == null) Console.WriteLine("Ndis80211SsId: {0}",queryObj["Ndis80211SsId"]); else { Byte[] arrNdis80211SsId = (Byte[]) (queryObj["Ndis80211SsId"]); foreach (Byte arrValue in arrNdis80211SsId) { Console.WriteLine("Ndis80211SsId: {0}", arrValue); } } } 

来自http://bytes.com/groups/net-c/657473-wmi-wifi-discovery

有关更多信息, 请参阅如何在.net中获取可用的WiFi AP及其信号强度?

我们使用托管的wifi库,但如果在查询期间网络断开连接,它会抛出exception。

尝试:

 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; 

您将不得不使用本机WLAN API。 这里有一个很长的讨论。 显然这就是Managed Wifi API所使用的,因此如果您对使用LGPL代码没有任何限制,您将更容易使用它。

检查网站http://wwww.daedaltech.com他们给了一个dll,我们可以找到SSID和mac地址