May be you can use the ARP protocol ... finding MAC Add is its function:
Uses WinApi.Winsock2, WinApi.IpHlpApi, WinApi.IpExport;
procedure TForm1.Button1Click(Sender: TObject);
var
DestIP, SrcIP: IPAddr;
AddrLen: ULong;
MacAddr: array[0..5] of byte;
s: AnsiString;
i: integer;
begin
SrcIp := 0;
s := '192.168.2.10'; //ROTATE IP
DestIP := inet_addr(PAnsiChar(s));
AddrLen := SizeOf(MacAddr);
SendARP(DestIP, SrcIP, @MacAddr[0], AddrLen);
s := ' MacAddress : ';
if AddrLen > 0 then
for i := 0 to AddrLen-1 do
begin
s := s + IntToHex(MacAddr[i], 2) + '-';
end;
SetLength(s, length(s)-1);
ShowMessage(s);
end;