300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > C# 如何取得本机网卡的型号 IP地址 子网掩码和网关

C# 如何取得本机网卡的型号 IP地址 子网掩码和网关

时间:2019-10-22 03:17:19

相关推荐

C# 如何取得本机网卡的型号 IP地址 子网掩码和网关

方法一:利用注册表

using System;using Microsoft.Win32;class CardGrab{public static void Main (){RegistryKey start = Registry.LocalMachine;RegistryKey cardServiceName, networkKey;string networkcardKey = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\NetworkCards";string serviceKey = "SYSTEM\\CurrentControlSet\\Services\\";string networkcardKeyName, deviceName;string deviceServiceName, serviceName;RegistryKey serviceNames = start.OpenSubKey(networkcardKey);if (serviceNames == null){Console.WriteLine("Bad registry key");return;}string[] networkCards = serviceNames.GetSubKeyNames();serviceNames.Close();foreach(string keyName in networkCards){networkcardKeyName = networkcardKey + "\\" + keyName;cardServiceName = start.OpenSubKey(networkcardKeyName);if (cardServiceName == null){Console.WriteLine("Bad registry key: {0}",networkcardKeyName);return;}deviceServiceName =(string)cardServiceName.GetValue("ServiceName");deviceName = (string)cardServiceName.GetValue("Description");Console.WriteLine("\nNetwork card: {0}", deviceName);serviceName = serviceKey + deviceServiceName + "\\Parameters\\Tcpip";networkKey = start.OpenSubKey(serviceName);if (networkKey == null){Console.WriteLine(" No IP configuration set");}else{string[] ipaddresses =(string[])networkKey.GetValue("IPAddress");string[] defaultGateways =(string[])networkKey.GetValue("DefaultGateway");string[] subnetmasks =(string[])networkKey.GetValue("SubnetMask");foreach(string ipaddress in ipaddresses){Console.WriteLine(" IP Address: {0}",ipaddress);}foreach(string subnetmask in subnetmasks){Console.WriteLine(" Subnet Mask: {0}", subnetmask);}foreach(string defaultGateway in defaultGateways){Console.WriteLine(" Gateway: {0}",defaultGateway);}networkKey.Close();}}start.Close();Console.ReadLine();}}

方法二:使用WMI

先添加System.Management.dll的引用

using System;using System.Management;class WMICardGrab{public static void Main (){ManagementObjectSearcher query = newManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = 'TRUE'");ManagementObjectCollection queryCollection = query.Get();foreach( ManagementObject mo in queryCollection ){string[] addresses = (string[])mo["IPAddress"];string[] subnets = (string[])mo["IPSubnet"];string[] defaultgateways =(string[])mo["DefaultIPGateway"];Console.WriteLine("Network Card: {0}",mo["Description"]);Console.WriteLine(" MAC Address: {0}",mo["MACAddress"]);foreach(string ipaddress in addresses){Console.WriteLine(" IP Address: {0}", ipaddress);}foreach(string subnet in subnets){Console.WriteLine(" Subnet Mask: {0}", subnet);}foreach(string defaultGateway in defaultGateways){Console.WriteLine("Gateway{0}",defaultGateway);}}}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。