我有以下功能,我到目前为止没有工作.我想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,is alive"; } }
pingAddress("127.0.0.1")
回声结果总是“死”,无论如何.
有人可以帮助我,我错了吗?
和/或有更好的方法做相同的结果吗?
非常感谢.
注意:下面的解决方案在Windows上不起作用.在linux上执行一个“哪个ping”命令,并且相应地设置命令路径(建议的exec调用)
原文链接:https://www.f2er.com/php/139699.html我想你想检查命令的退出状态,而shell_exec给你全输出(由于某些原因,可能会命令输出从命令版本更改到版本是危险的).此外,您的变量$ip不会在单引号内解释.你必须使用双重的“”.这可能是您需要解决的唯一的事情,以使其工作.
但是我认为以下代码可以更加“便携”. IMHO实际上更好地捕获退出状态,而不是尝试解析结果字符串.指定完整的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,is ".$status; } pingAddress("127.0.0.1");