winform C# 获取区分物理网卡、虚拟网卡及无线网卡

摘要:
=空)35{36//区分PnpInstanceID37//如果前面的PCI是这台机器的真实网卡38//MediaSubType是01,它是一个普通网卡,02是一个无线网卡。39stringPnpInstanceID=rk.GetValue.ToString();40intfMediaSubType=Convert.ToInt32;41if43fCardType=“物理网卡”;44elseif45fCardType=“虚拟网卡”;46elseif47fCardType=“无线网卡”;48}49#endregion 50#region“网卡信息”51Console。WriteLine;52Console.WriteLine;53Console.WriteLine;54Console.WriteLine;//获取网络适配器55Console.WriteLine//的标识符获取网络适配器56Console.WriteLine//的名称获取接口57Console.WriteLine的描述//获取接口类型58Console.Write Line//获取一个布尔值,该值指示网络接口是否设置为仅接收数据包。
usingSystem;   
02usingSystem.Collections.Generic;   
03usingSystem.Text;   
04usingSystem.Net;   
05usingSystem.Net.NetworkInformation;   
06usingSystem.Net.Sockets;   
07usingMicrosoft.Win32;   
08namespaceConsoleDemo   
09{   
10    /// <SUMMARY></SUMMARY>   
11    /// 标题:区分本地网卡、虚拟网卡及无线网卡   
12    /// 作者:X.X.Y   
13    /// 日期:2009-08-03   
14    /// 描述:测试环境 VS2008 + XP   
15    /// <SUMMARY></SUMMARY>   
16    classProgram   
17    {   
18        staticvoidMain(string[] args)   
19        {   
20            ShowNetworkInterfaceMessage();   
21        }   
22        /// <SUMMARY></SUMMARY>   
23        /// 显示本机各网卡的详细信息   
24        /// <SUMMARY></SUMMARY>   
25        publicstaticvoidShowNetworkInterfaceMessage()   
26        {   
27            NetworkInterface[] fNetworkInterfaces = NetworkInterface.GetAllNetworkInterfaces();   
28            foreach(NetworkInterface adapter infNetworkInterfaces)   
29            {  
30                #region " 网卡类型 "   
31                stringfCardType = "未知网卡";   
32                stringfRegistryKey = "SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\"+ adapter.Id + "\\Connection";   
33                RegistryKey rk = Registry.LocalMachine.OpenSubKey(fRegistryKey, false);   
34                if(rk != null)   
35                {   
36                    // 区分 PnpInstanceID    
37                    // 如果前面有 PCI 就是本机的真实网卡   
38                    // MediaSubType 为 01 则是常见网卡,02为无线网卡。   
39                    stringfPnpInstanceID = rk.GetValue("PnpInstanceID", "").ToString();   
40                    intfMediaSubType = Convert.ToInt32(rk.GetValue("MediaSubType", 0));   
41                    if(fPnpInstanceID.Length > 3 &&   
42                        fPnpInstanceID.Substring(0, 3) == "PCI")   
43                        fCardType = "物理网卡";   
44                    elseif(fMediaSubType == 1)   
45                        fCardType = "虚拟网卡";   
46                    elseif(fMediaSubType == 2)   
47                        fCardType = "无线网卡";   
48                }  
49                #endregion  
50                #region " 网卡信息 "   
51                Console.WriteLine("-----------------------------------------------------------");   
52                Console.WriteLine("-- "+ fCardType);   
53                Console.WriteLine("-----------------------------------------------------------");   
54                Console.WriteLine("Id .................. : {0}", adapter.Id); // 获取网络适配器的标识符   
55                Console.WriteLine("Name ................ : {0}", adapter.Name); // 获取网络适配器的名称   
56                Console.WriteLine("Description ......... : {0}", adapter.Description); // 获取接口的描述   
57                Console.WriteLine("Interface type ...... : {0}", adapter.NetworkInterfaceType); // 获取接口类型   
58                Console.WriteLine("Is receive only...... : {0}", adapter.IsReceiveOnly); // 获取 Boolean 值,该值指示网络接口是否设置为仅接收数据包。   
59                Console.WriteLine("Multicast............ : {0}", adapter.SupportsMulticast); // 获取 Boolean 值,该值指示是否启用网络接口以接收多路广播数据包。   
60                Console.WriteLine("Speed ............... : {0}", adapter.Speed); // 网络接口的速度   
61                Console.WriteLine("Physical Address .... : {0}", adapter.GetPhysicalAddress().ToString()); // MAC 地址   
62                IPInterfaceProperties fIPInterfaceProperties = adapter.GetIPProperties();   
63                UnicastIPAddressInformationCollection UnicastIPAddressInformationCollection = fIPInterfaceProperties.UnicastAddresses;   
64                foreach(UnicastIPAddressInformation UnicastIPAddressInformation inUnicastIPAddressInformationCollection)   
65                {   
66                    if(UnicastIPAddressInformation.Address.AddressFamily == AddressFamily.InterNetwork)   
67                        Console.WriteLine("Ip Address .......... : {0}", UnicastIPAddressInformation.Address); // Ip 地址   
68                }   
69                Console.WriteLine();  
70                #endregion   
71            }   
72            Console.ReadKey();   
73        }   
74    }   
75}

原文地址:http://blog.csdn.net/sabty/archive/2009/08/03/4404488.aspx

免责声明:文章转载自《winform C# 获取区分物理网卡、虚拟网卡及无线网卡》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇vmware已经全面支持open-vm-tools图片的懒加载和预加载下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux的安装注意事项

Linux简介:   Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。 Linux能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。       Linux的发...

Fedora 17 无线网卡配置笔记

转载:http://www.psichen.com/fedora-17-wifi/ 安装并更新完F17后,在网络选项中没有出现无线网,需要自己安装无线网卡驱动。而F17中默认网卡名称从以前的”eth0″变为了”p2p1″,无线网卡安装好了后,默认名称是”eth1″,可通过iwconfig命令查看p2p1、eth1和lo的相关信息。最后我是通过添加源,然后y...

Centos7安装bcm43142无线网卡驱动 采用rpmbuild方法

一 安装依赖和环境   1 安装依赖(第二个如果找不到包可以不装) # yum group install 'Development Tools' # yum install redhat-lsb kernel-abi-whitelists # yum install kernel-devel-$(uname -r)   2 建立rpmbuild环境(注意...

VMware 安装Linux系统

VMware 增加Linux系统 1、启动VMware,进入主界面 2、点击“创建新的虚拟机”,进入创建虚拟机向导界面,建议初学者选择“典型(推荐)” 3、点击“下一步”按钮,进入“安装客户机操作系统”界面选择“安装来源”,建议初学者选择第三项,创建空白硬盘的虚拟机 如果有一定经验的话,可以选择第二项,通过“浏览”按钮选择我们Linux系统的映像文...

WinCE 5.0 WIFI 无线网卡的配置和建立连接

 一、枚举系统中可用的无线网络设备                 下面的函数可以枚举出系统中所有可用的无线网卡设备的GUID,为了简化,我选择第一块可用的无线网卡来操作        BOOL GetFirstWirelessCard(PTCHAR pCard) {     if (!pCard)     {         return FALSE...

华为EC321CDMA PCMICA 无线网卡Ubuntu下使用

工作性质的原因,公司配备了华为EC321 CDMA无线网卡,PCMCIA接口。Windows环境下安装好驱动然后通过华为自带的软件可以拨号上网。 Linux下面能不能使用这块网卡呢,答案是肯定的。linux内核中已经包含了很多标准CDMA无线网卡芯片的驱动,只要你使用的CDMA卡是兼容的标准芯片那么在linux环境中使用的可能性很大。其中华为EC321这款...