我必须使用任何 Windows API 来区分真实地址和虚拟机地址。
我在用着GetAdaptersAddresses
用于填充本地计算机的 IP 地址列表的 API。我只需要提取除与 VMware 网络适配器关联的地址和其他地址(自动配置和隧道适配器地址)之外的“真实”地址。我无法找到任何 API 或任何标志来区分这一点。有什么办法可以做到这一点吗?
PS: The IfType
标志在IP_ADAPTER_ADDRESSES
返回的结构GetAdaptersAddresses
不能帮助我区分 VMware 地址和真实地址。
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
EDIT
更清楚地说,如果一个接口有一个MAC地址 https://stackoverflow.com/questions/1519585/how-to-get-mac-address-for-an-interface-in-linux-using-a-c-program以任何上面给定的字符串开头,那么它是虚拟的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)