ping通各网站连接

{测试IP地址能否PING通}
function ping(url: string): Boolean;
var
  i: Integer;
  rst: Boolean;
  err: String;
  icmpClient: TIdICMPClient;
begin
  i:= 0;
  rst:= False;
  icmpClient:= TIdICMPClient.Create(nil);
  icmpClient.ReceiveTimeout:= 500;
  icmpClient.Host:= url;
  icmpClient.PacketSize:= 1024;
  //ABuffer := url+ StringOfChar(' ', 255);
 
  while (not rst) and (i<3do
  begin
    inc(i);
    try
      icmpClient.Ping();
      Application.ProcessMessages;
      if (icmpClient.ReplyStatus.FromIpAddress = url) then
      begin
        rst:= True;
      end
      else
      begin
        rst:= false;
        sleep(10);
      end;
    except
      on e: Exception do
      begin
        err:= e.Message;
        //Socket Error # 10040 Message too long.是ping不通时的正常超时异常
        if pos('10040',err)=0 then
          Logger.Log(url+' Ping异常:'+ err);
        rst:= False;
        sleep(10);
      end;
    end;
 
  end;
 
  Result:= rst;
  icmpClient.Free;
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值