Отличить сетевой адаптер VMware от физических сетевых адаптеров или обнаружить виртуальный сетевой адаптер - PullRequest
15 голосов
/ 17 июня 2010

Я должен различать реальные адреса и адреса виртуальных машин, используя любой Windows API.Я использую GetAdaptersAddresses API для заполнения списка IP-адресов для локальной машины.Мне нужно извлечь только «реальные» адреса, кроме адресов, связанных с сетевым адаптером VMware, и других адресов (адреса автоконфигурации и туннельного адаптера).Я не смог найти ни API, ни какой-либо флаг, чтобы это дифференцировать.Есть ли способ сделать это?

PS : Флаг IfType в структуре IP_ADAPTER_ADDRESSES, возвращаемый GetAdaptersAddresses, не помогает мне различать адреса VMware иреальные адреса.

Ответы [ 2 ]

16 голосов
/ 17 июня 2010

Начало (первые 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-адрес , который начинается с любой из приведенных выше строк, затем виртуальный.

3 голосов
/ 01 января 2016

Я нашел сайт, чтобы получить более полный список префиксов MAC-адресов после прочтения clyfe ответа.

Пожалуйста, посетите: Поиск и поиск MAC-адреса поставщика / Ethernet / Bluetooth

Например: VirtualBox имеет префикс 17 MAC!

Prefix  Vendor
000F4B  Virtual Iron Software, Inc. (was: Katana Technology)
001307  Paravirtual Corporation (was: Accenia, Inc.)
0013BE  Virtual Conexions
0021F6  Virtual Iron Software
00240B  Virtual Computer Inc.
00A0B1  First Virtual Corporation
00E0C8  virtual access, ltd.
545200  linux kernal virtual machine (kvm)
000F4B  Virtual Iron Software, Inc. (was: Katana Technology)
001307  Paravirtual Corporation (was: Accenia, Inc.)
0013BE  Virtual Conexions
0021F6  Oracle Corporation (was: Virtual Iron Software)
00240B  Virtual Computer Inc.
00A0B1  First Virtual Corporation
00E0C8  virtual access, ltd.
18922C  Virtual Instruments
3CF392  Virtualtek. Co. Ltd

В конце я предпочел обнаружить Виртуальный сетевой адаптер из его «Описание сетевой карты». Если я вижу слово «Виртуальный» или «VMWare» в описании (C ++: IP_ADAPTER_INFO :: Description), я предполагаю, что это виртуальный сетевой адаптер.

...