Un código que usé una vez:
Código Delphi
[-]
Function GetPrimaryNicMacAddress: String;
Type
TGUID = Record
A, B: word;
D, M, S: word;
MAC: Array[ 1..6 ] Of byte;
End;
Var
UuidCreateFunc: Function(Var guid: TGUID): HResult; stdcall;
handle: THandle;
g: TGUID;
WinVer: _OSVersionInfoA;
i: integer;
Begin
Try
WinVer.dwOSVersionInfoSize := sizeof(WinVer); getversionex(WinVer); handle := LoadLibrary('RPCRT4.DLL'); If WinVer.dwMajorVersion >= 5 Then
@UuidCreateFunc := GetProcAddress(Handle, 'UuidCreateSequential')
Else @UuidCreateFunc := GetProcAddress(Handle, 'UuidCreate');
UuidCreateFunc(g); Result := '';
For i := 1 To 6 Do Result := Result + IntToHex(g.MAC[ i ], 2); Except
Result := ''; End;
End;