我必须使用任何 Windows API 区分真实地址和虚拟机地址。
我正在使用 GetAdaptersAddresses
API 来填充本地计算机的 IP 地址列表。除了与 VMware 网络适配器和其他地址(自动配置和隧道适配器地址)关联的地址之外,我只需要提取“真实”地址。我一直无法找到任何 API 或任何标志来区分这一点。有什么办法可以做到这一点?
PS:GetAdaptersAddresses
返回的 IP_ADAPTER_ADDRESSES
结构中的 IfType
标志无法帮助我区分VMware地址和真实地址。
最佳答案
mac 地址的开头(前 3 段)显示接口(interface)是否为虚拟接口(interface):
"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
编辑
更清楚地说,如果一个接口(interface)有一个 MAC address以任何上述给定的字符串开头,则它是虚拟的。
关于c - 区分 VMware 网络适配器与物理网络适配器 - 或 - 检测虚拟网络适配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3062594/