C#--WinForm获取本机网卡的型号,IP地址,子网掩码和网关

简介: //方法一:利用注册表 using System; using Microsoft.Win32; class CardGrab {     public static void Main()     {         RegistryKey start = Registry.

//方法一:利用注册表

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 in defaultgateways)
            {
                Console.WriteLine(" defaultgateways: {0}", defaultgateway);
            }
        }
    }
}

 

博客园大道至简

http://www.cnblogs.com/jams742003/

转载请注明:博客园

目录
相关文章
|
4月前
|
C#
C# WinForm发送Email邮件
C# WinForm发送Email邮件
C# WinForm发送Email邮件
|
4月前
|
SQL 数据库连接 应用服务中间件
C#WinForm基础编程(三)
C#WinForm基础编程
131 0
|
4月前
C#WinForm基础编程(二)
C#WinForm基础编程
95 0
|
4月前
|
C# 数据安全/隐私保护
C#WinForm基础编程(一)
C#WinForm基础编程
88 0
|
9月前
|
小程序 C#
C#WinForm实现Loading等待界面
上篇博客中解决了程序加载时屏幕闪烁的问题。 但是,加载的过程变得很缓慢。 这个给用户的体验也不是很好,我这里想加一个Loading的进度条。 项目启动的时候,加载进度条,界面UI加载完毕,进度条消失。
257 0
|
1月前
|
关系型数据库 Java MySQL
C#winform中使用SQLite数据库
C#winform中使用SQLite数据库
45 3
C#winform中使用SQLite数据库
|
1月前
|
数据库
C#Winform使用NPOI获取word中的数据
C#Winform使用NPOI获取word中的数据
119 2
|
4月前
|
C# 开发者
35.c#:winform窗口
35.c#:winform窗口
31 1
|
4月前
|
JavaScript C#
C#winForm程序与html JS交互调用
C#winForm程序与html JS交互调用
|
4月前
|
C#
C# Winform 选择文件夹和选择文件
C# Winform 选择文件夹和选择文件
80 0