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

本文介绍两种方法来获取计算机上的网络配置详情,包括IP地址、子网掩码和默认网关等,一种是通过注册表读取,另一种是利用WMI进行查询。

摘要生成于 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("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 = 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值