PHP Ping Ubuntu

时间:2012-08-22 18:59:25

标签: php networking ubuntu ping

我无法让PHP ping本地计算机。我只是想能够检查计算机是否处于清醒状态。

我在搜索时遇到过很多ping方法,但似乎没有一种方法适合我。我相信这是因为在Ubuntu上,ping需要root权限,PHP没有。大多数示例使用某种形式的

exec("ping ".$ip);

但任何方法对我都没问题。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

在我的Ubuntu系统上,命令ls -l /bin/ping显示:

-rwsr-xr-x 1 root root 34716 2010-11-15 09:08 /bin/ping

这意味着虽然root拥有“ping”,但所有用户都可以执行它 您应该尝试使用以下PHP代码:

<html>
<body>
<pre>
<?php 
$result = exec("/bin/ping -c 1 -W 1 127.0.0.1"); 
echo "result=".$result."\n";
?>
</pre>
</body>
</html>

显然,您应该将“127.0.0.1”替换为您网络的有效IP地址 -c 1选项在发送一个数据包后停止ping,如manual page

中所述
  

-c count
在发送ECHO_REQUEST个数据包后停止   使用截止时间选项,ping等待计数ECHO_REPLY数据包,直到超时   到期。

-W 1选项强制ping停止,如果它在一秒钟后没有得到响应:

  

-W 超时
  等待响应的时间,以秒为单位。
该选项仅影响任何响应的超时,否则ping等待两个RTT。