此文记录的是网卡操作的工具类。
/*** 网卡工具类 Austin Liu 刘恒辉 Project Manager and Software Designer E-Mail: lzhdim@163.com Blog: http://lzhdim.cnblogs.com Date: 2024-01-15 15:18:00 使用方法: 1、获取所有激活的网卡名称; List<string> list = NetworkCardUtil.GetActivatedAdaptorNameList(); 2、获取所有正在激活使用的网卡名称列表; List<string> NewworkCardList = GetCurrentActiveatedNetworkCardList(); ***/ namespace Lzhdim.LPF.Utility { using System.Collections.Generic; using System.Diagnostics; using System.Management; /// <summary> /// 网卡工具类 /// </summary> public class NetworkCardUtil { /// <summary> /// 获得当前机器的活动网卡名称,如果列表元素为0则没联网 /// </summary> /// <returns>网卡名称列表</returns> public static List<string> GetActivatedAdaptorNameList() { List<string> list = new List<string>(); ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) { if (mo["IPEnabled"].ToString() == "True") { list.Add(mo["Description"].ToString()); } } return list; } /// <summary> /// 获取当前正在联网使用的网卡名称列表 /// </summary> /// <returns>网卡名称列表。如果元素为0则没有联网的网卡。</returns> public static List<string> GetCurrentActiveatedNetworkCardList() { List<string> list = GetActivatedAdaptorNameList(); PerformanceCounterCategory category = new PerformanceCounterCategory("Network Interface"); List<string> NetworkCardList = new List<string>(); foreach (string name in category.GetInstanceNames()) { // This one exists on every computer. if (name == "MS TCP Loopback interface") continue; foreach (string item in list) { if (name.Replace('[', '(').Replace(']', ')') == item) { NetworkCardList.Add(name); } } } return NetworkCardList; } } }
Austin Liu 刘恒辉
Project Manager and Software Designer E-Mail:lzhdim@163.com Blog:https://lzhdim.cnblogs.com 欢迎收藏和转载此博客中的博文,但是请注明出处,给笔者一个与大家交流的空间。谢谢大家。 |