C#判断是否存在已连接的真实网卡(NetConnectionStatus)
来源:互联网 发布:软交换网络协议 编辑:程序博客网 时间:2024/05/17 01:56
C#判断是否存在已连接的真实网卡
这个问题可以拆成两个小问题:
1、如何判断一个网卡是否为真实网卡(即物理网卡),因为可能还有虚拟网卡,比如装了某个虚拟机;
2、如何判断一个网卡有没有连接(连接不代表就能上Internet)。
注:这里的网卡确切地应该叫网络适配器(Network Adapter)。
用C#获取硬件信息最方便的莫过于WMI了,与网卡相关的信息就在Win32_NetworkAdapter这个类里面了。
第一个问题:在Win32_NetworkAdapter里有个叫PNPDeviceID的字符串属性,官方的说明是Windows Plug and Play device identifier of the logical device。如果这个属性的前3个字符是PCI, 那么这就是本机的真实网卡(不要问我为什么,我也想知道),包括无线网卡。
第二个问题:还是在Win32_NetworkAdapter里有个名为NetConnectionStatus的uint16类型的属性,其中2代表已连接,7代表断开。其他各值的含义请参见MSDN。
OK,问题解决,最终的代码为:
ManagementObjectSearcher s = new ManagementObjectSearcher(
@"SELECT DeviceID FROM Win32_NetworkAdapter WHERE NetConnectionStatus=2 AND PNPDeviceID LIKE 'PCI%'");
return s.Get().Count > 0; //True表示存在已连接的真实网卡,False反之。
记得添加using System.Management;和对System.Management.dll的引用。
-------------------------------------------------------------
转载出处:
百度空间:http://hi.baidu.com/roovent
-------------------------------------------------------------
- C#判断是否存在已连接的真实网卡(NetConnectionStatus)
- 判断文件是否已存在
- 判断一个字符串是否为已存在的文件夹
- 验证邮箱是否真实存在 c#
- c# 数据库 判断是否存在
- sql 判断数据库是否已存在
- 判断已有节点是否存在 XML
- SQL 判断表是否已存在 【转】
- oracle 判断一个表是否已存在
- Struts2框架判断用户名是否已存在
- C#判断硬盘上的文件是否存在方法
- C#判断硬盘上的文件是否存在方法
- C#判断硬盘上的文件是否存在方法
- c# 判断文件是否存在某个文件夹的方法
- C#判断网络地址 Url 是否存在的方法
- C# 判断文件夹和文件是否存在的方法
- C# 判断txt文件是否存在的方法
- C#中判断文件夹或文件是否存在的方法
- Axis2 WebService的配置、发布、调用
- UVA - 558 Wormholes
- 了解 XNA 的遊戲架構。
- android学习笔记(1)-ANDROID开发环境搭建
- 子集---答题
- C#判断是否存在已连接的真实网卡(NetConnectionStatus)
- eclipse配置开发web项目,eclipse配置tomcat
- 物體在二維空間中的移動
- ListView优化 不用ViewHolder(Google 不推荐) SimpleAdapter 就真的Simple了吗
- 我的onServiceDisconnected为什么没有被呼叫
- MSDN帮助
- Apache/Tomcat/JBOSS/Nginx区别
- 2D 動畫與碰撞
- Hay Day系统设计沉思录——数据存储