我需要知道是否只有一个适配器处于活动状态/ up并获得他的名字。 那是我现在的代码
List<string> _adapters = new List<string>();
foreach (NetworkInterface f in NetworkInterface.GetAllNetworkInterfaces())
{
if (f.OperationalStatus == OperationalStatus.Up && !f.Name.Contains("Loopback")
&& !f.Name.Contains("isatap")
&& !f.Name.Contains("Pseudo")
&& !f.Name.Contains("Teredo")
&& !f.Name.Contains("6To4"))
{
_adapters.Add(f.Name);
}
}
if (_adapters.Count == 1)
{
return true;
}
else
{
return false;
}
现在我必须排除一些隧道和环回适配器,如Loopback,isatap,Pseudo,Teredo,6To4。我认为这个解决方案并不是很好。现在我问,是否有可能排除这些&#34;伪&#34;适配器完全?
修改 我发现另一个不是100%完美的解决方案来处理这个问题,但我认为它比与名称的比较更好。
List<string> _adapters = new List<string>();
foreach (NetworkInterface f in NetworkInterface.GetAllNetworkInterfaces())
{
if (f.OperationalStatus == OperationalStatus.Up &&
!f.NetworkInterfaceType.ToString().Contains("Tunnel") &&
!f.NetworkInterfaceType.ToString().Contains("Loopback"))
{
Console.WriteLine(f.Name);
_adapters.Add(f.Name.ToString());
}
}