区分VMware网络适配器与物理网络适配器 - 或 - 检测虚拟网络适配器

Ven*_*kat 15 c windows vmware networking nic

我必须使用任何Windows API来区分真实地址和VM地址.我正在使用GetAdaptersAddressesAPI来填充本地计算机的IP地址列表.除了与VMware网络适配器关联的地址和其他地址(自动配置和隧道适配器地址)之外,我只需要提取"真实"地址.我无法找到任何API或任何标志来区分它.有什么办法可以做到吗?

PS:返回IfTypeIP_ADAPTER_ADDRESSES结构中的标志GetAdaptersAddresses无法帮助我区分VMware地址和实际地址.

cly*_*yfe 16

mac地址的开头(前3个段)显示接口是否为虚拟接口:

"00:05:69"; //vmware1
"00:0C:29"; //vmware2
"00:50:56"; //vmware3
"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
Run Code Online (Sandbox Code Playgroud)

编辑
更清楚的是,如果一个接口的MAC地址以任何上面给定的字符串开头,那么它就是虚拟的.

  • 只是想添加一些链接:使用此链接 - http://standards.ieee.org/regauth/oui/index.shtml查找ID预订.可以在此处执行反向操作:http://coffer.com/mac_find/ (2认同)