我目前使用Managed Wifi API来获取设备连接到的无线网络的SSID。这是我的方法:
public string getSSID() {
try {
WlanClient wlan = new WlanClient();
Collection<String> ConnectedSSIDs = new Collection<string>();
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)));
}
return ConnectedSSIDs[0];
} catch (Win32Exception) {
return EMPTY;
} catch (Exception Ex) {
throw Ex;
}
}
目前,我可以确定我是否连接到Wifi和以太网(因为在这种情况下仍然存在SSID),还是只连接了以太网。
我想要一些方法能够推断出我是否只连接了Wifi而不是除此之外还连接了以太网。
我已经看过以下内容:
令人惊讶的是,查看 Win32_NetworkAdapter 的 AdapterType 属性(仅连接到Wifi时),我仍然返回“Ethernet 802.3”而不是我所期望的“无线”。
不幸的是,我认为在 Managed Wifi API 中没有实现我想要的功能。
编辑
所以我定义了这三个常量:
private const string WIFI_AND_ETHERNET = "WIFI & ETHERNET";
private const string WIFI = "WIFI";
private const string ETHERNET = "ETHERNET";
目前,我展示的方法可以判断网络连接是ETHERNET
还是WIFI_AND_ETHERNET
。
这是通过检查是否可用/可见SSID来实现的。如果有,则返回WIFI_AND_ETHERNET
,但在没有一个的情况下,它将仅返回ETHERNET
。
现在我需要的是一种区分网络连接是通过WIFI
ONLY还是WIFI_AND_ETHERNET
的方法。