检测是否能ping通201.168.56.17 。如果可以ping通。。echo (延迟是多少)
如果ping不通 》返回 echo("ping return ;")就是检测对方主机是否运行大牛来指点一二。新手来学习一下。大家一起讨论下啦

解决方案 »

  1.   

    exec 我试过,但不是很理想
      

  2.   

    搜到一段代码:
    <?php 
    $host = '192.168.1.1'; //要ping的地址,也可以是IP  
    $port = '80'; //要ping的端口  
    $num = 3;  
    function microtime_float()  
    {
      list($usec, $sec) = explode(" ", microtime());
      return ((float)$usec + (float)$sec);  
    }  
    function ping($host,$port)  
    {
      $time_start = microtime_float();
      $ip = gethostbyname($host);
      $fp = @fsockopen($host,$port,&$errno,&$errstr,1);
      if(!$fp) return 'replay time out!';
      $get = "GET / HTTP/1.1\r\nHost: $host\r\nConnection: Close\r\n\r\n";
      @fputs($fp,$get);
      @fclose($fp);
      $time_end = microtime_float();
      $time = $time_end - $time_start;
      $time = ceil($time * 1000);
      return 'Reply from '.$ip.': time='.$time.'ms<br />';
    }echo 'Pinging '.$host.' ['.gethostbyname($host).'] with Port:'.$port.' of data:<br /><br />'."\r\n";  
    for($i = 0;$i < $num;$i++)
    {
      echo ping($host,$port);
      sleep(1);
      ob_flush();
      flush();
    }
    ?>
      

  3.   

    其实ping不过是发送ICMP报文,以测试和目标主机的连通性,可以用ls的方法fsocketopen方法发送http请求模拟。
      

  4.   

    用 php 中的 exec() 调用命令来实现  最好。
      

  5.   

    $ip   =   "192.168.1.1"; 
    exec( "ping   $ip ",   $arr); print_r($arr); 
      

  6.   

    ping发送的是ICMP报文,只能用raw socket谷歌搜索结果的第一条就是文档,文档前几楼就是ping的例子
    http://php.net/manual/en/function.socket-create.php