function pingf (ip :string):string;
var
ReplyStatus:TReplyStatus;
ICMP:TIdIcmpClient;
begin
ICMP:= TIdIcmpClient.Create(nil );
ICMP.ReceiveTimeout := 1000;
ICMP.Host := ip;
try
ICMP.Ping;
ReplyStatus:=icmp.ReplyStatus;
//Result:= TStringList.Create;
//if (ReplyStatus.MsRoundTripTime = 0) then
//Result.add('<1')
//else Result.add(Format('%d',[ReplyStatus.MsRoundTripTime]));
//Result.add(Format('%d',[ ReplyStatus.TimeToLive]));
if (ReplyStatus.MsRoundTripTime = 0) then
Result := '<1'
else
Result := Format('%d',[ReplyStatus.MsRoundTripTime]);
except
Result := '';
end;
ICMP.free;
var
ReplyStatus:TReplyStatus;
ICMP:TIdIcmpClient;
begin
ICMP:= TIdIcmpClient.Create(nil );
ICMP.ReceiveTimeout := 1000;
ICMP.Host := ip;
try
ICMP.Ping;
ReplyStatus:=icmp.ReplyStatus;
//Result:= TStringList.Create;
//if (ReplyStatus.MsRoundTripTime = 0) then
//Result.add('<1')
//else Result.add(Format('%d',[ReplyStatus.MsRoundTripTime]));
//Result.add(Format('%d',[ ReplyStatus.TimeToLive]));
if (ReplyStatus.MsRoundTripTime = 0) then
Result := '<1'
else
Result := Format('%d',[ReplyStatus.MsRoundTripTime]);
except
Result := '';
end;
ICMP.free;
end;
經本人測試,調用 返回等‘’或'1000' 則爲Ping 不通