使用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命令的完整路径。
<?phpfunction 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