procurando por um endereço MAC de um adaptador físico

Gostaria de usar um identificador exclusivo para determinar se meu aplicativo foi movido para um computador diferente. O endereço MAC parece ser adequado para esse propósito. O código que eu uso é 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 //

Minha máquina tem uma porta de rede, mas esse código encontra 18 portas relacionadas à rede / coisas / o que quer que seja. Entre eles, existem quatro endereços MAC. Eu presumo que uma porta de rede deve ser habilitada para IP, de modo que deixe dois à esquerda (rotulado MAC na imagem). É correto assumir que das portas assim filtradas, aquela com o menor índice é a porta de hardware?

Editar no instantâneo acima do adaptador Realtek é o único adaptador físico na máquina. O outro adaptador é o adaptador virtual do VirtualBox. A resposta do TLama identifica esses dois adaptadores, mas existe uma maneira de encontrar o endereço do único adaptador físico (Realtek)?

Atualização 1 O EJP apontou que o endereço MAC pode ser alterado. Isso de alguma forma prejudica meu propósito, mas como estou procurando uma solução que se encaixe na maioria das situações, decidi viver com ela.

TLama e TOndrej apontaram várias soluções. Ambos acabam com uma situação em que um adaptador físico não pode ser encontrado sem qualquer dúvida.

Atualização 2 A excelente lista de leitura do TLama mostra que provavelmente não há uma maneira certa de determinar o adaptador físico. O artigo mencionado no primeiro item mostra como reduzir a quantidade de adaptadores com base em algumas suposições simples. O artigo no terceiro marcador mostra como selecionar o adaptador conectado ao barramento PCI, que é exatamente o que eu queria saber. Existem algumas exceções estranhas mencionadas no artigo, mas acho que isso fornecerá uma resposta na maioria dos casos.

Obrigado a todos por suas contribuições!

questionAnswers(2)

yourAnswerToTheQuestion