2010-06-17 4 views
14

Ich muss zwischen den realen Adressen und den VM-Adressen unter Verwendung jeder Windows-API unterscheiden. Ich benutze GetAdaptersAddresses API, um eine Liste von IP-Adressen für den lokalen Computer aufzufüllen. Ich muss nur die "echten" Adressen extrahieren, abgesehen von den Adressen, die mit dem VMware-Netzwerkadapter und anderen Adressen (Autokonfigurations- und Tunneladapteradressen) verknüpft sind. Ich konnte keine API oder irgendeine Markierung finden, um dies zu unterscheiden. Gibt es eine Möglichkeit, dies zu tun?VMware-Netzwerkadapter von physischen Netzwerkadaptern unterscheiden -oder- Virtuellen Netzwerkadapter erkennen

PS: Die IfType Flagge in der IP_ADAPTER_ADDRESSES Struktur zurückgegeben durch GetAdaptersAddresses hilft mir zwischen VMware-Adressen und die realen Adressen nicht zu unterscheiden.

Antwort

14

Der Anfang (erste 3 Segmente) der MAC-Adresse zeigt an, ob eine Schnittstelle virtuell ist:

"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
klarer werden, wenn eine Schnittstelle ein MAC address aufweist, die mit einem der oben genannten beginnen Strings gegeben, dann ist es virtuell.

+2

wollte nur einige Links hinzufügen: Verwenden Sie diesen Link - http://standards.ieee.org/regauth/oui/index.shtml, um ID-Reservierungen zu finden. Reverse-Betrieb kann hier durchgeführt werden: http://coffer.com/mac_find/ – Andrey

+0

danke, das war sehr hilfreich – Venkat

+0

Dies beantwortet nicht genau die Frage: woher wissen wir aus dem Firmennamen, wenn es virtuell ist oder nicht? – Gyuri

2

Ich fand eine Website, um eine vollständige Liste der MAC-Adresse Präfix zu erhalten, nach dem Lesen clyfe Antwort.

Bitte besuchen Sie: Vendor/Ethernet/Bluetooth MAC Address Lookup and Search

Zum Beispiel: VirtualBox has 17 MAC prefix!

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 

Am Ende ich virtuelle Netzwerkadapter von seiner 'Netzwerkkarte Beschreibung' erkennen bevorzugt. Wenn ich 'Virtual' oder 'VMWare' Wort in der Beschreibung (C++: IP_ADAPTER_INFO :: Description) sehe, werde ich davon ausgehen, dass es sich um einen virtuellen Netzwerkadapter handelt.

+0

Wie behandeln Sie nicht-Englisch "Beschreibung"? – Ajay

Verwandte Themen