Delphi通过ICMP检测与远程主机连接
生活随笔
收集整理的這篇文章主要介紹了
Delphi通过ICMP检测与远程主机连接
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
{ ping IP 地址(返回false or true) 2015-03-23}
function PingHost(HostIP: String): Boolean;
typePIPOptionInformation = ^TIPOptionInformation;TIPOptionInformation = packed recordTTL:Byte;TOS:Byte;Flags:Byte;OptionsSize:Byte;OptionsData:PChar;end;PIcmpEchoReply= ^TIcmpEchoReply;TIcmpEchoReply = packed recordAddress: DWORD;Status:DWORD;RTT:DWORD;DataSize:Word;Reserved:Word;Data:Pointer;Options:TIPOptionInformation;end;TIcmpCreateFile = function:THandle;stdcall;TIcmpCloseHandle= function(IcmpHandle:THandle):Boolean;stdcall;TIcmpSendEcho=function(IcmpHandle:THandle;DestinationAddress: DWORD;RequestData: Pointer;RequestSize: Word;RequestOptions: PIPOptionInformation;ReplyBuffer: Pointer;ReplySize: DWord;Timeout: DWord):DWord;stdcall;
varhICMP:THandle;hICMPdll:THandle;IcmpCreateFile:TIcmpCreateFile;IcmpCloseHandle:TIcmpCloseHandle;IcmpSendEcho:TIcmpSendEcho;pIPE:PIcmpEchoReply;// ICMP Echo reply bufferFIPAddress:DWORD;FSize:DWORD;FTimeOut:DWORD;BufferSize:DWORD;pReqData,pRevData:PChar;MyString:string;
begin Result:=False;hICMPdll:=LoadLibrary('icmp.dll');if hICMPdll=0 then exit;@ICMPCreateFile:=GetProcAddress(hICMPdll,'IcmpCreateFile');@IcmpCloseHandle:=GetProcAddress(hICMPdll,'IcmpCloseHandle');@IcmpSendEcho:=GetProcAddress(hICMPdll, 'IcmpSendEcho');hICMP := IcmpCreateFile;if (hICMP=INVALID_HANDLE_VALUE) then exit;FIPAddress:=inet_addr(PChar(HostIP));MyString := 'Hello,World'; //send data bufferpReqData:=PChar(MyString);FSize:=40; //receive data bufferBufferSize:=SizeOf(TICMPEchoReply)+FSize;GetMem(pIPE,BufferSize); FillChar(pIPE^,SizeOf(pIPE^), 0);GetMem(pRevData,FSize);pIPE^.Data:=pRevData;FTimeOut:=500;tryResult:=IcmpSendEcho(hICMP, FIPAddress,pReqData,Length(MyString),nil,pIPE,BufferSize,FTimeOut)>0;finallyIcmpCloseHandle(hICMP);FreeLibrary(hICMPdll);FreeMem(pRevData);FreeMem(pIPE);end;
end;
?
轉載于:https://www.cnblogs.com/tc310/p/4359887.html
總結
以上是生活随笔為你收集整理的Delphi通过ICMP检测与远程主机连接的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 银行给的信用额度外的免息分期,到底是办还
- 下一篇: GDKOI2015 Day2