什么叫有效物理网卡_如何区分虚拟网卡和物理网卡?-阿里云开发者社区
一、什么是物理网卡和虚拟网卡?
图示如下:红色部分包含VMWare的为虚拟网卡。
通常,我们部署VMWare虚拟机、VMSphere虚拟集群、XenCenter虚拟集群是都会涉及虚拟网卡。
二、辨别物理网卡和虚拟网卡的应用场景
场景一:一般部署虚拟集群的时候会用到。
场景二:通过抓包分析数据请求来源是物理网卡发出的数据包,还是虚拟网卡地址发出的包时候会用到。辨识都是通过mac地址区分的。
场景三:其他需要区分网卡的场景。
三、 如何区分物理网卡和虚拟网卡呢?
方法一:老套且仅适用于windows操作系统。
原理大致如:
先由 GetAdaptersInfo 获取所有网卡的基本信息。然后利用网卡名去注册表中查找对应的硬件信息。若是物理网卡,其硬件信息中通常会包含 PCI 。
例如,某个网卡的名为 {ACA306D0-1D69-4116-BC2B-919B428AD084}。
他在注册表中的信息所在位置为:
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Network/{4D36E972-E325-11CE-BFC1-08002BE10318}/{ACA306D0-1D69-4116-BC2B-919B428AD084}/Connection
若PnpInstanceID的值以PCI开头,说明是物理网卡,MediaSubType为01则是常见网卡,02为无线网卡。
常见08年早期博客实现:
该方法仅适用于windows操作系统,不具备普遍通用性。
方法二:综合stackoverflow和github得出(2016年10月8日)。
1、包含以下MAC地址的前8个字节(前3段)是虚拟网卡:
"00:05:69"; //vmware1
"00:0C:29"; //vmware2
"00:50:56"; //vmware3
"00:1c:14"; //vmware4
"00:1C:42"; //parallels1
"00:03:FF"; //microsoft virtual pc
"00:0F:4B"; //virtual iron 4
"00:16:3E"; //red hat xen , oracle vm , xen source, novell xen
"08:00:27"; //virtualbox
举例以下的网卡地址中:
Line 34: PhysicalAddress: 00:FF:C4:73:16:0D
Line 110: PhysicalAddress: 8C:89:A5:BD:1A:6A
Line 215: PhysicalAddress: 00:50:56:C0:00:01
Line 316: PhysicalAddress: 00:50:56:C0:00:08
后两个以00:50:56 开头的都是VMWare虚拟网卡地址。
基于此:实现也就非常简单,思路如下:
获取网卡地址后,判定前8个字节,循环变量上面的列表,如果前8个字节相同,终止程序,即为虚拟网卡地址;否则为物理网卡地址。
2、以下链接进行了虚拟网卡类别区分探讨:
3、以下链接给出了虚拟网卡全分类的接口实现:
4、可能疑问?
1)如果包含的不全是不是会不准确。
是的,需要集思广益,多搜集资料,使得尽量全面。
四:小结
刚入职的时候分析数据包,架构师一眼就能区分出哪些是VMWare机器发送的,现在才知道是基于Mac地址的前几位得出的结论。
而我知道这个原理比架构师足足晚了2年,这,或许就是差距和值得努力的地方!
什么叫有效物理网卡_如何区分虚拟网卡和物理网卡?-阿里云开发者社区相关推荐
- mysql 轨迹数据存储_基于Tablestore实现海量运动轨迹数据存储-阿里云开发者社区...
前言 现在越来越多的人都开始关心自己的运动数据,比如每日的计步.跑步里程.骑行里程等.运动APP与运动类的穿戴设备借助传感器.地图.GPS定位等技术,收集好运动数据以后,通过与互联网社交功能结合,产生 ...
- python语言打小数点_如何在python中打小数点-问答-阿里云开发者社区-阿里云
python提供了三种浮点值:内置的float与complex类型,以及标准库的decimal.Decimal类型. float类型存放双精度的浮点数,具体取值范围依赖于构建python的c编译器,由 ...
- liunx导出mysql慢查询日志查看_查看 MySQL 慢查询日志文件-问答-阿里云开发者社区-阿里云...
查看 MySQL 是否启用了慢 SQL 查询: 查看慢 SQL 日志是否启用. mysql> show variables like 'log_slow_queries'; +--------- ...
- vue 移动端头像裁剪_使用vue-cropper裁剪正方形上传头像-阿里云开发者社区
引用方式 在组件内使用 import { VueCropper } from 'vue-cropper' components: { VueCropper, }, main.js里面使用 import ...
- 阿里云 ecs mysql搭建_使用ECS和mysql搭建mysql服务器-阿里云开发者社区
一.首先得在阿里云等云主机上申请两台主机 二.现在连上去安装mysql 1.通过安装源将mysql下载下来 [root@iz2ze2llim71y07x3numlbz ~]# wget 'https: ...
- python创建虚拟环境打包_用虚拟环境保存库文件--Python打包-阿里云开发者社区
用虚拟环境保存库文件 如果你同时负责多个 Python 项目,或者想要轻松打包某个项目及其关联的库文件,再 或者你担心已安装的库之间可能有冲突,那么你可以安装一个 Python 虚拟环境来分而 治之. ...
- qgraphicsview鼠标移动图片_交互式QGraphicsView(平移/缩放/旋转)-阿里云开发者社区...
简述 Graphics View提供了一个平台用于大量自定义 2D 图元的管理与交互框架包括一个事件传播架构支持场景 Scene 中的图元 Item 进行精确的双精度交互功能.Item 可以处理键盘事 ...
- mysql跨平台迁移复制_手工 XTTS CPT 迁移-跨平台迁移数据库-阿里云开发者社区
-- xtts 跨平台迁移数据库 -- 步骤: 1.初始化参数设置: 2.将源端数据文件传输到目标系统: 3.转换数据文件为目标系统的字节序: 4.在源端创建增量备份,并传输到目标端: 5.在目标端恢 ...
- python中引入sql的优点_引用sql-和引用sql相关的内容-阿里云开发者社区
bboss持久层改进支持模块sql配置文件引用其它模块sql配置文件中sql语句 bboss持久层改进支持模块sql配置文件引用其它模块sql配置文件中sql语句. 具体使用方法如下: <pro ...
- mysql blackhole缺点_【MySql】 BlackHole :黑洞引擎-阿里云开发者社区
BlackHole :黑洞引擎,写入的任何数据都会消失,用于记录binlog做复制的中继存储! 如何安装: 在安装MySQL时使用带有--with-blackhole-storage-engine选项 ...
最新文章
- python操作系统-Python_操作系统的发展史
- 使用字符流 创建文件 写入文件 复制文件
- Tableau系列之使用日期
- python(numpy,pandas5)——numpy中copy 和 deep copy
- OceanBase数据库实践入门——性能测试建议
- SELinux系列(十二)安全上下文的修改和设置(chcon和restorecon命令)
- python fileinput处理多文件
- C#资源文件的使用方法
- 关于单例模式中,饿汉式和懒汉式有什么区别?
- 百度云 图片搜索(JavaAipImageSearch)
- 押注AI大装置,商汤的“月亮与六便士”
- mysql为什么不用b树_MySQL用B+树(而不是B树)做索引的原因
- ping: unknown host www.baidu.com 解决办法
- 红米10x android11,红米10X 5G版刷机包MIUI11
- 2020-08-13 图像处理入门软件应该怎么选?Opencv matlab 和Python
- C语言 用switch语句算工资
- SpringMVC后缀
- 【RDMA】RoCE网络QoS|应用层设置PFC等级|Tos|Priority|TC
- 4399 面试笔试题
- 爬虫摸索中~~(PS:小小爬虫,何惧哉?且到明日,再看今朝。)
热门文章
- 【进出理论】投入与收益
- Zabbix监控(十六):分布式监控-Zabbix Proxy
- Universal-Image-Loader解析(二)——DisplayImageOptions的详细配置与简单的图片加载...
- 使用jquery的blockui插件显示弹出层
- 咨询的真相8:咨询业的“前世今生”
- MMN实用架构过程概览
- arima 预测模型_预测未来:学习使用Arima模型进行预测
- 怎么样用System.out.println在控制台打印出颜色
- leetcode 724. 寻找数组的中心索引
- leetcode91. 解码方法