+ -
当前位置:首页 → 问答吧 → php如何实现这样的效果,大家来讨论下。

php如何实现这样的效果,大家来讨论下。

时间:2011-10-05

来源:互联网

检测是否能ping通201.168.56.17 。如果可以ping通。。echo (延迟是多少)
如果ping不通 》返回 echo("ping return ;")

就是检测对方主机是否运行。。。

大牛来指点一二。新手来学习一下。大家一起讨论下啦

作者: DOwnstairs   发布时间: 2011-10-05

共同期待

作者: lovewangya   发布时间: 2011-10-05

waiting for big 牛

作者: DOwnstairs   发布时间: 2011-10-05

exec 我试过,但不是很理想

作者: leilidi   发布时间: 2011-10-05

搜到一段代码:
PHP code
<?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();
}
?>

作者: LuciferStar   发布时间: 2011-10-05

相关阅读 更多