function IcmpCreateFile:Integer;stdcall;external 'ICMP.DLL';
function IcmpCloseHandle(ICMPHandle:Integer):boolean;stdcall;external 'ICMP.DLL';
function IcmpSendEcho( IcmpHandle:integer; DestinationAddress:Integer;RequestData:PChar; RequestSize: WORD;RequestOptions:Pointer;ReplyBuffer:PChar;ReplySize:DWORD;Timeout:DWORD):DWORD;stdcall external 'ICMP.DLL';function Ping(var sDestAddr:String):boolean;{ you can use the link to be a param of sDestAddr}
var
echoHandle:Integer;
echoReplyBuffer:array [0..255] of Char;
destAddr:Integer;
echoRequestData:String;
begin
Result:=false;
echoRequestData:='AAAAAAAAAA';
echoHandle:=IcmpCreateFile;
          destAddr:=inet_addr(PChar(SDestAddr));
          if IcmpSendEcho(echoHandle,destAddr,PChar(echoRequestData),Length(echoRequestData),nil,echoReplyBuffer,255,200)=0 then
            Result:=true else Result:=false;
IcmpCloseHandle(echoHandle);
end;