通过 ARP 协议获取局域网内指定 IP 地址的机器的 MAC 地址

function SendARP(ipaddr: ulong; temp: dword; ulmacaddr: pointer; ulmacaddrleng:
    pointer): dword; stdcall; external 'Iphlpapi.dll' Name 'SendARP';

function IP2Mac(ipaddr:ULong):String;
var
  AMac: array [0 .. 5] of BYTE;
  l: ulong;
  r: integer;
begin
  l:=6;  
  r := SendARP(ipaddr, 0, @AMac, @l);
  if r=0 then
    Result:=Format('%2.2x-%2.2x-%2.2x-%2.2x-%2.2x-%2.2x', [AMac[0], AMac[1], AMac[2], AMac[3], AMac[4],AMac[5]])
  else
    Result:='';
end;

 

分享到: