使用PHP Ping一个IP地址并回显结果

前端之家收集整理的这篇文章主要介绍了使用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,is alive";
    }

}

当我用这个例子来调用这个函数

pingAddress("127.0.0.1")

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

有人可以帮助我,我错了吗?
和/或有更好的方法做相同的结果吗?

非常感谢.

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

注意:下面的解决方案在Windows上不起作用.在linux上执行一个“哪个ping”命令,并且相应地设置命令路径(建议的exec调用)

我想你想检查命令的退出状态,而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");
原文链接:https://www.f2er.com/php/139699.html

猜你在找的PHP相关文章