使用PHP ping IP地址并回显结果

我有以下功能,到目前为止我还无法使用。我想ping一个IP地址,然后回显该IP是否有效。

function pingAddress($ip){

$pingresult = shell_exec("start /b ping $ip -n 1");

$dead = "Request timed out.";

$deadoralive = strpos($dead, $pingresult);

if ($deadoralive == false){

echo "The IP address, $ip, is dead";

} else {

echo "The IP address, $ip, is alive";

}

}

当我使用示例调用此函数时:

pingAddress("127.0.0.1")

无论如何,回声结果总是“死”。

有人可以帮我解决我的问题吗?和/或是否有更好的方法可以达到相同的效果?

非常感谢。

更新:修改了代码以包括双引号,但仍然得到相同(不正确)的结果。

回答:

我认为您想检查命令的退出状态,而shell_exec为您提供完整的输出(出于某种原因,命令输出在命令版本之间更改可能会很危险)。此外,您的变量$

ip不会在单引号内解释。您必须使用双引号“”。那可能是您唯一需要修复才能使其正常工作的东西。

但是我认为以下代码可能更“便携”。恕我直言,实际上最好是捕获退出状态,而不是尝试解析结果字符串。恕我直言,最好指定ping命令的完整路径。

<?php

function pingAddress($ip) {

$pingresult = exec("/bin/ping -n 3 $ip", $outcome, $status);

if (0 == $status) {

$status = "alive";

} else {

$status = "dead";

}

echo "The IP address, $ip, is ".$status;

}

pingAddress("127.0.0.1");

以上是 使用PHP ping IP地址并回显结果 的全部内容, 来源链接: utcz.com/qa/414193.html

回到顶部