windows下判断网卡是否是虚拟网卡的方式

网上流传的判断虚拟网卡的方式通常是判断网卡名称,以PCI开头的网卡都是真实网卡。因为以前网卡都是PCI网卡,不是的就是虚拟网卡。但是这种方式不一定全部正确,因为现在有些网卡不是PCI网卡,例如USB网卡,但是它依然是真实网卡。所以这种方法就不在可靠了。
最可靠的方法是读取注册表来判断,是我目前发现的最可靠的方法。
首先要知道网卡的名字,可以通过GetAdaptersInfo获取到
然后用GetAdaptersInfo获取和此名字相同的网卡信息PIP_ADAPTER_INFO结构中的AdapterName字段。注意AdapterName并不是指我们通常看到的名字,而是一段字符和数字组合的文字,我们通常看到的网卡的名字是Description字段。
然后用AdapterName字段中的内容找到注册表中的对应的位置,可以让我们找到网卡的相信信息。
网卡信息存在注册表的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}中,这个键下面有一些子键,这些子键中的NetCfgInstanceId的值对应的就是我们刚才查找到的AdapterName。这个子键中的Characteristics的值就可以判断是否是虚拟网卡,Characteristics本质是一些按位存储的值得集合:


ox1 NCF_VIRTUAL 说明组件是个虚拟适配器
ox2 NCF_SOFTWARE_ENUMERATED 说明组件是一个软件模拟的适配器
ox4 NCF_PHYSICAL 说明组件是一个物理适配器
ox8 NCF_HIDDEN 说明组件不显示用户接口
ox10 NCF_NO_SERVICE 说明组件没有相关的服务(设 备驱动程序)
ox20 NCF_NOT_USER_REMOVABLE 说明不能被用户删除(例如,通过控制面板或设备管理器)
ox40 NCF_MULTIPORT_INSTANCED_ADAPTER 说明组件有多个端口,每个端口作为单独的设备安装。每个端口有自己的hw_id(组件ID)并可被单独安装,这只适合于EISA适配器
ox80 NCF_HAS_UI 说明组件支持用户接口(例如,Advanced Page或Customer Properties Sheet)
ox400 NCF_FILTER 说明组件是一个过滤器

从上面可以看出来,只要用户判断Characteristics的值就可以判断网卡是虚拟网卡还是物理网卡。
看一下这个值和4进行与运算是否大于0,大于0的就是物理的网卡。

windows下判断网卡是否是虚拟网卡的方式相关推荐

  1. 建立服务器虚拟网卡,增加一个虚拟网卡 - 卡饭网

    如何在网络连接里面添加一个IP地址给虚拟网卡 如何在网络连接里面添加一个IP地址给虚拟网卡 一般来说当系统完成添加虚拟网卡以后,IP设置系统就会自动完成的,不需要手动.如果它不能够自动设置IP地址,也 ...

  2. 实现Windows下Qt扫描U盘的两种方式

    参考网上资源,总结了如下实现Windows下Qt扫描U盘的两种方式:. 方式1: 检测Windows的事件–WM_DEVICECHANGE 缺点:想要检测时,必须发生过一次U盘插拔动作,需要手动&qu ...

  3. win10下安装华为Atals USB虚拟网卡驱动

    1. 用USB连接电脑和HUAWEI Atlas 200 进入设备管理器,查看设备驱动安装情况 2. 安装驱动 (1) 在RNDIS上点击右键,选择更新驱动程序 (2) 接下来选择浏览我的电脑以查找驱 ...

  4. linux系统加多个网卡,在linux下教你将多个网卡设置为虚拟网卡

    现在很多电脑都有不只一块网卡,但是一块网卡出现故障,整个网络都会中断.但是在Linux系统中只要创建Linux虚拟网卡,就不会遇到这种麻烦.本文就来介绍一下Linux下把多个网卡设置成多个虚拟网卡的技 ...

  5. linux关闭虚拟网卡,KVM---关闭虚拟网卡virbr0的方法

    我们知道:kvm虚拟化环境安装好后,ifconfig会发现多了一个虚拟网卡virbr0 这是由于安装和启用了libvirt服务后生成的,libvirt在服务器(host)上生成一个 virtual n ...

  6. linux里添加网卡,Linux添加虚拟网卡的多种方法

    Linux添加虚拟网卡的多种方法有时候,一台服务器需要设置多个ip,但又不想添加多块网卡,那就需要设置虚拟网卡.这里介绍几种方式在linux服务器上添加虚拟网卡.我们 有时候,一台服务器需要设置多个i ...

  7. 当前的网卡配置及虚拟网卡设置及默认网卡配置

    关于Linux下图形界面的网络配置,我这里就不多介绍了,这个很简单.这里介绍的是如何通过修改配置文件来实现虚拟网卡. 首先介绍Ubuntu(我这里使用的是ubuntu-16.04)下虚拟网卡的配置 1 ...

  8. 物理服务器迁移至虚拟机后网卡,关于VMware虚拟网卡net1与net8消失及虚拟机与物理机相互ping不通心得...

    前些日子,由于自己一开始并不了解虚拟机,在自己安装完虚拟机后一不小心在自己的物理机的网络适配器中将VMware workstation安装时自带的两张虚拟网卡vmnet1与vmnet8不小心删除掉了, ...

  9. 远程连接linux虚拟网卡,Linux 虚拟机虚拟网卡问题导致无法连接问题

    问题描述 当 Linux 虚拟机启动时,通过串口输出或者启动日志, 观察到虚拟网卡启动或者初始化故障, 导致虚拟机无法连接. 问题分析 常见的超时报错范例如下: CentOS 复制 Bringing ...

最新文章

  1. 基于OpenCV实战:3步实现图像降噪
  2. nginx第三方库安装以及连接memcache
  3. Redis 特殊数据类型 :Geospatial、Hyperloglog、Bitmap
  4. 专科生,还有未来吗?
  5. oracle的分析函数over 及开窗函数[转]
  6. 【Elasticsearch】我们如何在 5 天内在同一个 Elasticsearch 集群中重新索引 360 亿份文档
  7. MySQL的隔离级别
  8. Python Cheat Sheet 中文版
  9. java输入年月输出日历_java输入年份打印该年份的年历 | 学步园
  10. 医疗保险前台系统ER图1
  11. matlab模拟光伏发电,一种基于MATLAB的小型独立光伏发电仿真模型的制作方法
  12. 文法俱乐部 第一章 基本句型及补语
  13. 英语词根研究和单词记忆
  14. 台式电脑没鼠标怎么移动光标_台式电脑没有鼠标怎么操作电脑
  15. javascript渐变色算法
  16. 一道简单的电商数据分析笔试题:求组合商品的库存量
  17. 红米K30S至尊纪念版和小米10至尊纪念版的区别
  18. 【requests库】爬取Pixiv日榜图片 并保存到本地
  19. Ubuntu下各种软件的安装和卸载
  20. 九轴传感器MPU9250数据读取磁力计

热门文章

  1. 【叶子函数分享十八】人民币小写金额转大写
  2. Framework学习(一)Android-系统架构,2021年冲刺年薪40w
  3. centos7安装录像工具asciinema
  4. 基于C语言开发菜鸟驿站管理系统【100010822】
  5. JVM 设置时区为中国(东八区、上海)
  6. hill图matlab代码,Hill密码的加密论文(内含matlab程序代码).doc
  7. HDU2548——两军交锋
  8. 2022世界一流学科排名发布
  9. 后处理工具 icampost v19 v21 v22
  10. 回忆我读过的计算机书籍