加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

PHP检查服务器是否还活着

发布时间:2020-05-22 12:26:50 所属栏目:PHP 来源:互联网
导读:我需要检查一组服务器,路由器和交换机是否还活着.我一直在寻找可以与IP和端口一起工作超过一个小时的可靠的东西,有人可以帮忙吗? 结束使用 function ping($addr, $port=) { if(empty($port)) { ob_start(); system(ping -c1 -w1 .$addr, $return);

我需要检查一组服务器,路由器和交换机是否还活着.我一直在寻找可以与IP和端口一起工作超过一个小时的可靠的东西,有人可以帮忙吗?

结束使用

function ping($addr,$port='') {
    if(empty($port)) {
        ob_start();
        system('ping -c1 -w1 '.$addr,$return);
        ob_end_clean();
        if($return == 0) {
            return true;
        } else {
            return false;
        }
    } else {
        $fp = fsockopen("udp://{$addr}",$port,$errno,$errstr);
        if (!$fp) {
            return false;
        } else {
            return true;
        }
    }
}
服务器,路由器和交换机……它们共享的一个共性是在SNMP服务运行时接受SNMP请求的能力.听起来你正在尝试做的是为监控系统(nagios等等)实施一个有趣的解决方法.

按照:http://php.net/manual/en/book.snmp.php

<?php
 $endpoints = array('10.0.0.1','10.0.0.2','10.0.0.3','10.0.0.4','10.0.0.5');
 foreach ($endpoints as $endpoint) {
      $session = new SNMP(SNMP::VERSION_2c,$endpoint,'boguscommunity');
      var_dump($session->getError());
      // do something with the $session->getError() if it exists else,endpoint is up
 }
 ?>

这将告诉您端点是否处于活动状态且SNMP服务是否正在运行.特定于查看端口是否可用/打开,您可以使用fsockopen():

http://php.net/manual/en/function.fsockopen.php

<?php
 $fp = fsockopen("udp://127.0.0.1",13,$errstr);
 if (!$fp) {
      echo "ERROR: $errno - $errstr<br />n";
 }
 ?>

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读