Buscando una dirección MAC de un adaptador físico

Me gustaría usar un identificador único para determinar si mi aplicación se movió a una computadora diferente. La dirección MAC parece ser adecuada para este propósito. El código que uso es este:

Procedure TForm4.GetMacAddress;
var item: TListItem;
    objWMIService : OLEVariant;
    colItems      : OLEVariant;
    colItem       : OLEVariant;
    oEnum         : IEnumvariant;
    iValue        : LongWord;
    wmiHost, root, wmiClass: string;
    i: Int32;

  function GetWMIObject(const objectName: String): IDispatch;
  var
    chEaten: Integer;
    BindCtx: IBindCtx;//for access to a bind context
    Moniker: IMoniker;//Enables you to use a moniker object
  begin
    OleCheck(CreateBindCtx(0, bindCtx));
    OleCheck(MkParseDisplayName(BindCtx, StringToOleStr(objectName), chEaten, Moniker));//Converts a string into a moniker that identifies the object named by the string
    OleCheck(Moniker.BindToObject(BindCtx, nil, IDispatch, Result));//Binds to the specified object
  end;

begin
   wmiHost       := '.';
   root          := 'root\CIMV2';
   wmiClass      := 'Win32_NetworkAdapterConfiguration';
   objWMIService := GetWMIObject(Format('winmgmts:\\%s\%s',[wmiHost,root]));
   colItems      := objWMIService.ExecQuery(Format('SELECT * FROM %s',[wmiClass]),'WQL',0);
   oEnum         := IUnknown(colItems._NewEnum) as IEnumVariant;
   i := 0;
   while oEnum.Next(1, colItem, iValue) = 0 do
   begin
      Item := View.Items.Add;
      item.Caption := Copy (colItem.Caption, 2, 8);

      Item.SubItems.Add (colItem.Description);
      Item.SubItems.Add (colItem.ServiceName);
      Item.SubItems.Add (VarToStrNil (colItem.MACAddress));
      if (VarToStrNil(colItem.MACAddress) <> '')
         then Item.SubItems.Add ('yes')
         else Item.SubItems.Add ('no');
      if colItem.IPEnabled
         then Item.SubItems.Add ('yes')
         else Item.SubItems.Add ('no');
     Item.SubItems.Add (VarToStrNil (colItem.SettingID));
     Item.SubItems.Add (IntToStr (colItem.InterfaceIndex));
   end; // if
end; // GetMacAddress //

Mi máquina tiene un puerto de red, pero este código encuentra 18 puertos / cosas / lo que sean relacionados con la red. Entre ellas hay cuatro direcciones MAC. Supongo que un puerto de red debe estar habilitado para IP para que queden dos (con la etiqueta MAC en la imagen). ¿Es correcto suponer que de los puertos así filtrados, el que tiene el índice más bajo es el puerto de hardware?

Editar en la instantánea sobre el adaptador Realtek es el único adaptador físico en la máquina. El otro adaptador es el adaptador virtual de VirtualBox. La respuesta de TLama identifica estos dos adaptadores, pero ¿hay alguna forma de encontrar la dirección del único adaptador físico (Realtek)?

Actualización 1 EJP señaló que la dirección MAC se puede cambiar. Esto socava un poco mi propósito, pero como estoy buscando una solución que se adapte a la mayoría de las situaciones, decidí vivir con ella.

TLama y TOndrej señalaron varias soluciones. Ambos terminan con una situación en la que no se puede encontrar un adaptador físico sin ninguna duda.

Actualización 2 La excelente lista de lectura de TLama muestra que probablemente no haya una forma determinada de determinar el adaptador físico. El artículo mencionado en la primera viñeta muestra cómo reducir la cantidad de adaptadores en función de algunas suposiciones simples. El artículo en la tercera viñeta muestra cómo seleccionar el adaptador conectado al bus PCI, que de hecho es exactamente lo que quería saber. Hay algunas excepciones raras mencionadas en el artículo, pero creo que esto proporcionará una respuesta en la mayoría de los casos.

¡Gracias a todos por sus contribuciones!

Respuestas a la pregunta(2)

Su respuesta a la pregunta