Я должен дифференцироваться между действительными адресами и адресами VM с помощью любого Windows API. Я использую GetAdaptersAddresses
API для заполнения списка IP-адресов для локальной машины. Я должен извлечь только "реальные" адреса кроме адресов, связанных с сетевым адаптером VMware и другими адресами (автоматическая конфигурация и туннельные адреса адаптера). Я не смог найти, что любой API или любой флаг дифференцируют это. Есть ли какой-либо способ, которым это может быть сделано?
PS: IfType
флаг в IP_ADAPTER_ADDRESSES
структура, возвращенная GetAdaptersAddresses
не помогает мне дифференцироваться между адресами VMware и действительными адресами.
Начало (первые 3 сегмента) MAC-адреса показывает, является ли интерфейс виртуальным:
"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
ИЗМЕНИТЬ
Чтобы быть более ясным, если интерфейс имеет MAC-адрес , который начинается с любой из указанных выше строк, то он виртуальный.