获取本机的IP地址、子网掩码、网关

本文介绍了一个使用C#从Windows注册表中读取网络适配器的配置信息(如IP地址、子网掩码和默认网关)的方法。通过遍历注册表项,此程序能够获取并展示所有网络接口的服务名称及描述。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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();
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值