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("错误的注册表键值!");
return;
}
string[] networkCards=serviceNames.GetSubKeyNames();
serviceNames.Close();
foreach(string keyName in networkCards){
networkcardKeyName=networkcardKey+"//"+keyName;
cardServiceName=start.OpenSubKey(networkcardKeyName);
if(cardServiceName==null){
Console.WriteLine("错误的注册表键值:{0}"+networkcardKeyName);
return;
}
deviceServiceName=(string) cardServiceName.GetValue("ServiceName");
deviceName=(string) cardServiceName.GetValue("Description");
Console.WriteLine("/n网卡:{0}",deviceName);
serviceName=serviceKey+deviceServiceName+"//Parameters//Tcpip";
networkKey=start.OpenSubKey(serviceName);
if(networkKey==null){
Console.WriteLine(" 没有设置IP");
} 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地址:{0}",ipaddress);
}
foreach(string subnetmask in subnetmasks){
Console.WriteLine(" 子网掩码:{0}",subnetmask);
}
foreach(string defaultGateway in defaultGateways){
Console.WriteLine(" 网关:{0}",defaultGateway);
}
networkKey.Close();
}
}
start.Close();
}
}