//方法一:利用注册表
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.Management;
class WMICardGrab
ManagementObjectSearcher query = new
ManagementObjectSearcher("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(" defaultgateways: {0}", defaultgateway);
博客园大道至简
<a href="http://www.cnblogs.com/jams742003/" target="_blank">http://www.cnblogs.com/jams742003/</a>
转载请注明:博客园