Das ist die Funktion:
Code:
uses IPHlpAPI, WinSock;
function IPToMAC(
IP: String) : String;
var
DestIP, SrcIP: Cardinal;
pMacAddr: PULong;
AddrLen: ULong;
MacAddr: array[0..5] of byte;
p: PByte;
i: integer;
begin
result := '';
SrcIp := 0;
DestIP := inet_addr(PChar(
IP));
pMacAddr := @MacAddr[0];
AddrLen := SizeOf(MacAddr);
SendARP(DestIP, SrcIP, pMacAddr, AddrLen);
p := PByte(pMacAddr);
if Assigned(p) and (AddrLen>0) then
for i := 0 to AddrLen-1 do
begin
result := result + IntToHex(p^,2) + '-';
Inc(p);
end;
SetLength(result, Length(result) - 1);
end;
Weiterhin habe ich die
Unit "IPHLPAPI.PAS" verwendet, die
auch hier zu finden ist.