C# 获取网卡信息
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C# 获取网卡信息,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6198字,纯文字阅读大概需要9分钟。
内容图文
![C# 获取网卡信息](/upload/InfoBanner/zyjiaocheng/624/68466e461b79420884c253d5bac2224e.jpg)
获取网卡信息
![C# 获取网卡信息 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501024926134.jpg)
![C# 获取网卡信息 - 文章图片](/upload/getfiles/0001/2021/5/1/20210501024926241.jpg)
static void Main(string[] args) { ShowNetworkInterfaces(); Console.Read(); } public static void ShowNetworkInterfaces() { IPGlobalProperties computerProperties = IPGlobalProperties.GetIPGlobalProperties(); NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces(); Console.WriteLine("Interface information for {0}.{1} ", computerProperties.HostName, computerProperties.DomainName); if (nics == null || nics.Length < 1) { Console.WriteLine(" No network interfaces found."); return; } Console.WriteLine(" Number of interfaces .................... : {0}", nics.Length); foreach (NetworkInterface adapter in nics) { #region " 网卡类型 " string fCardType = "未知网卡"; string fRegistryKey = "SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\" + adapter.Id + "\\Connection"; RegistryKey rk = Registry.LocalMachine.OpenSubKey(fRegistryKey, false); if (rk != null) { // 区分 PnpInstanceID // 如果前面有 PCI 就是本机的真实网卡 // MediaSubType 为 01 则是常见网卡,02为无线网卡。 string fPnpInstanceID = rk.GetValue("PnpInstanceID", "").ToString(); int fMediaSubType = Convert.ToInt32(rk.GetValue("MediaSubType", 0)); if (fPnpInstanceID.Length > 3 && fPnpInstanceID.Substring(0, 3) == "PCI") fCardType = "物理网卡"; else if (fMediaSubType == 1) fCardType = "虚拟网卡"; else if (fMediaSubType == 2) fCardType = "无线网卡"; } #endregion #region IP 版本 string versions = ""; // Create a display string for the supported IP versions. if (adapter.Supports(NetworkInterfaceComponent.IPv4)) { versions = "IPv4"; } if (adapter.Supports(NetworkInterfaceComponent.IPv6)) { if (versions.Length > 0) { versions += " "; } versions += "IPv6"; } #endregion IP 版本 IPInterfaceProperties properties = adapter.GetIPProperties(); Console.WriteLine(); Console.WriteLine(fCardType + " : " + adapter.Description); Console.WriteLine(String.Empty.PadLeft(adapter.Description.Length, '=')); Console.WriteLine(" Id ...................................... : {0}", adapter.Id); // 获取网络适配器的标识符 Console.WriteLine(" Name .................................... : {0}", adapter.Name); // 获取网络适配器的名称 Console.WriteLine(" Description ............................. : {0}", adapter.Description); // 获取接口的描述 Console.WriteLine(" Interface type .......................... : {0}", adapter.NetworkInterfaceType); // 获取接口类型 Console.WriteLine(" IP version .............................. : {0}", versions); Console.WriteLine(" IP Properties ........................... : {0}", string.Join(" ; ", adapter.GetIPProperties().AnycastAddresses.Select(o => o.Address.ToString()).ToArray())); Console.WriteLine(" IP Properties ........................... : {0}", string.Join(" ; ", adapter.GetIPProperties().DhcpServerAddresses.Select(o => o.ToString()).ToArray())); Console.WriteLine(" IP Properties ........................... : {0}", string.Join(" ; ", adapter.GetIPProperties().DnsAddresses.Select(o => o.ToString()).ToArray())); Console.WriteLine(" IP Properties ........................... : {0}", adapter.GetIPProperties().DnsSuffix); Console.WriteLine(" IP Properties ........................... : {0}", string.Join(" ; ", adapter.GetIPProperties().GatewayAddresses.Select(o => o.Address.ToString()).ToArray())); Console.WriteLine(" IP Properties ........................... : {0}", adapter.GetIPProperties().IsDnsEnabled); Console.WriteLine(" IP Properties ........................... : {0}", adapter.GetIPProperties().IsDynamicDnsEnabled); Console.WriteLine(" IP Properties ........................... : {0}", string.Join(" ; ", adapter.GetIPProperties().MulticastAddresses.Select(o => o.Address.ToString()).ToArray())); // The adapters for IP address. IPInterfaceProperties fIPInterfaceProperties = adapter.GetIPProperties(); UnicastIPAddressInformationCollection UnicastIPAddressInformationCollection = fIPInterfaceProperties.UnicastAddresses; foreach (UnicastIPAddressInformation UnicastIPAddressInformation in UnicastIPAddressInformationCollection) { if (UnicastIPAddressInformation.Address.AddressFamily == AddressFamily.InterNetwork) Console.WriteLine(" Ip Address .............................. : {0}", UnicastIPAddressInformation.Address); // Ip 地址 } Console.WriteLine(" Physical Address ........................ : {0}", adapter.GetPhysicalAddress().ToString()); // MAC 地址 Console.WriteLine(" Operational status ...................... : {0}", adapter.OperationalStatus); // 获取网络连接的当前操作状态 Console.WriteLine(" DNS suffix .............................. : {0}", properties.DnsSuffix); Console.WriteLine(" DNS enabled ............................. : {0}", properties.IsDnsEnabled); Console.WriteLine(" Dynamically configured DNS .............. : {0}", properties.IsDynamicDnsEnabled); Console.WriteLine(" Receive Only ............................ : {0}", adapter.IsReceiveOnly); Console.WriteLine(" Multicast ............................... : {0}", adapter.SupportsMulticast); Console.WriteLine(" Speed ................................... : {0}", adapter.Speed); // 网络接口的速度 //// The following information is not useful for loopback adapters. //if (adapter.NetworkInterfaceType == NetworkInterfaceType.Loopback) //{ // continue; //} if (adapter.Supports(NetworkInterfaceComponent.IPv4)) { IPv4InterfaceProperties ipv4 = properties.GetIPv4Properties(); if (ipv4 != null) { Console.WriteLine(" MTU ..................................... : {0}", ipv4.Mtu); Console.WriteLine(" MTU Index ............................... : {0}", ipv4.Index); Console.WriteLine(" MTU Automatic Private Addressing Active . : {0}", ipv4.IsAutomaticPrivateAddressingActive); Console.WriteLine(" MTU Automatic Private Addressing Enabled. : {0}", ipv4.IsAutomaticPrivateAddressingEnabled); Console.WriteLine(" MTU Dhcp Enabled ........................ : {0}", ipv4.IsDhcpEnabled); Console.WriteLine(" MTU Forwarding Enabled .................. : {0}", ipv4.IsForwardingEnabled); if (ipv4.UsesWins) { IPAddressCollection winsServers = properties.WinsServersAddresses; if (winsServers.Count > 0) { Console.WriteLine(" WINS Servers ............................ : {0}", winsServers); Console.WriteLine(" WINS Servers Read Only .................. : {0}", winsServers.IsReadOnly); } } } } Console.WriteLine(); } }View Code
内容总结
以上是互联网集市为您收集整理的C# 获取网卡信息全部内容,希望文章能够帮你解决C# 获取网卡信息所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。