PHP 检查服务器是否存在

标签 php

我需要检查一组服务器、路由器和交换机是否处于事件状态。一个多小时以来,我一直在寻找可以与 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, $errno, $errstr);
 if (!$fp) {
      echo "ERROR: $errno - $errstr<br />\n";
 }
 ?>

关于PHP 检查服务器是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7792413/

相关文章:

php - Sql 获取超过 10 分钟的结果 - wpdb Wordpress 查询

php - 3 个令人困惑的 MySQL 警告

Javascript 部分代码未发布到数据库

php - Rails 对 PHP 开发人员来说很难理解吗?

php - 清理多余的 PHP 扩展 - 将所有内容切换到 mcrypt 或 openssl?

php - 在 mysql_real_escape_string 之后,在 Twitter 中出现的撇号前面有一个反斜杠

php - Elasticsearch - 上一个/下一个功能

php - 如何在 php while 循环中显示几列,然后显示其余的其他列?

php - 如何重构它以进行单个函数调用?

php - 根据模式生成唯一的 id