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

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了使用PHP Ping一个IP地址并回显结果脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_126_0@ 我有以下功能,我到目前为止没有工作.我想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");

脚本宝典总结

以上是脚本宝典为你收集整理的使用PHP Ping一个IP地址并回显结果全部内容,希望文章能够帮你解决使用PHP Ping一个IP地址并回显结果所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。