⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 class.linux.inc.php

📁 国外很不错的一个开源OA系统Group-Office
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?php // phpSysInfo - A PHP System Information Script// http://phpsysinfo.sourceforge.net/// This program is free software; you can redistribute it and/or// modify it under the terms of the GNU General Public License// as published by the Free Software Foundation; either version 2// of the License, or (at your option) any later version.// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the// GNU General Public License for more details.// You should have received a copy of the GNU General Public License// along with this program; if not, write to the Free Software// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.// $Id: class.Linux.inc.php,v 1.1 2005/04/15 21:23:32 mschering Exp $class sysinfo {  // get our apache SERVER_NAME or vhost  function vhostname () {    if (! ($result = getenv('SERVER_NAME'))) {      $result = 'N.A.';    }     return $result;  }   // get our canonical hostname  function chostname () {    if ($fp = fopen('/proc/sys/kernel/hostname', 'r')) {      $result = trim(fgets($fp, 4096));      fclose($fp);      $result = gethostbyaddr(gethostbyname($result));    } else {      $result = 'N.A.';    }     return $result;  }   // get the IP address of our canonical hostname  function ip_addr () {    if (!($result = getenv('SERVER_ADDR'))) {      $result = gethostbyname($this->chostname());    }     return $result;  }   function kernel () {    if ($fd = fopen('/proc/version', 'r')) {      $buf = fgets($fd, 4096);      fclose($fd);      if (preg_match('/version (.*?) /', $buf, $ar_buf)) {        $result = $ar_buf[1];        if (preg_match('/SMP/', $buf)) {          $result .= ' (SMP)';        }       } else {        $result = 'N.A.';      }     } else {      $result = 'N.A.';    }     return $result;  }     function uptime () {    global $text;    $fd = fopen('/proc/uptime', 'r');    $ar_buf = split(' ', fgets($fd, 4096));    fclose($fd);    $sys_ticks = trim($ar_buf[0]);    $min = $sys_ticks / 60;    $hours = $min / 60;    $days = floor($hours / 24);    $hours = floor($hours - ($days * 24));    $min = floor($min - ($days * 60 * 24) - ($hours * 60));    if ($days != 0) {      $result = "$days " . $text['days'] . " ";    }     if ($hours != 0) {      $result .= "$hours " . $text['hours'] . " ";    }     $result .= "$min " . $text['minutes'];    return $result;  }   function users () {    $who = split('=', execute_program('who', '-q'));    $result = $who[1];    return $result;  }   function loadavg () {    if ($fd = fopen('/proc/loadavg', 'r')) {      $results = split(' ', fgets($fd, 4096));      fclose($fd);    } else {      $results = array('N.A.', 'N.A.', 'N.A.');    }     return $results;  }   function cpu_info () {    $results = array();    $ar_buf = array();    if ($fd = fopen('/proc/cpuinfo', 'r')) {      while ($buf = fgets($fd, 4096)) {        list($key, $value) = preg_split('/\s+:\s+/', trim($buf), 2);         // All of the tags here are highly architecture dependant.        // the only way I could reconstruct them for machines I don't        // have is to browse the kernel source.  So if your arch isn't        // supported, tell me you want it written in.        switch ($key) {          case 'model name':            $results['model'] = $value;            break;          case 'cpu MHz':            $results['mhz'] = sprintf('%.2f', $value);            break;          case 'cycle frequency [Hz]': // For Alpha arch - 2.2.x            $results['mhz'] = sprintf('%.2f', $value / 1000000);            break;          case 'clock': // For PPC arch (damn borked POS)            $results['mhz'] = sprintf('%.2f', $value);            break;          case 'cpu': // For PPC arch (damn borked POS)            $results['model'] = $value;            break;          case 'L2 cache': // More for PPC            $results['cache'] = $value;            break;          case 'revision': // For PPC arch (damn borked POS)            $results['model'] .= ' ( rev: ' . $value . ')';            break;          case 'cpu model': // For Alpha arch - 2.2.x            $results['model'] .= ' (' . $value . ')';            break;          case 'cache size':            $results['cache'] = $value;            break;          case 'bogomips':            $results['bogomips'] += $value;            break;          case 'BogoMIPS': // For alpha arch - 2.2.x            $results['bogomips'] += $value;            break;          case 'BogoMips': // For sparc arch            $results['bogomips'] += $value;            break;          case 'cpus detected': // For Alpha arch - 2.2.x            $results['cpus'] += $value;            break;          case 'system type': // Alpha arch - 2.2.x            $results['model'] .= ', ' . $value . ' ';            break;          case 'platform string': // Alpha arch - 2.2.x            $results['model'] .= ' (' . $value . ')';            break;          case 'processor':            $results['cpus'] += 1;            break;          case 'Cpu0ClkTck': // Linux sparc64            $results['mhz'] = sprintf('%.2f', hexdec($value) / 1000000);            break;          case 'Cpu0Bogo': // Linux sparc64 & sparc32            $results['bogomips'] = $value;            break;          case 'ncpus probed': // Linux sparc64 & sparc32            $results['cpus'] = $value;            break;        }       }       fclose($fd);    }     $keys = array_keys($results);    $keys2be = array('model', 'mhz', 'cache', 'bogomips', 'cpus');    while ($ar_buf = each($keys2be)) {      if (! in_array($ar_buf[1], $keys)) {        $results[$ar_buf[1]] = 'N.A.';      }     }     return $results;  }   function pci () {    $results = array();    if ($_results = execute_program('lspci')) {      $lines = split("\n", $_results);      for ($i = 0, $max = sizeof($lines); $i < $max; $i++) {        list($addr, $name) = explode(' ', trim($lines[$i]), 2);        if (!preg_match('/bridge/i', $name) && !preg_match('/USB/i', $name)) {          // remove all the version strings          $name = preg_replace('/\(.*\)/', '', $name);          $results[] = $addr . ' ' . $name;        }       }     } elseif ($fd = fopen('/proc/pci', 'r')) {      while ($buf = fgets($fd, 4096)) {        if (preg_match('/Bus/', $buf)) {          $device = 1;          continue;        }         if ($device) {          list($key, $value) = split(': ', $buf, 2);          if (!preg_match('/bridge/i', $key) && !preg_match('/USB/i', $key)) {            $results[] = preg_replace('/\([^\)]+\)\.$/', '', trim($value));          }           $device = 0;        }       }     }     asort($results);    return $results;  }   function ide () {    $results = array();    $handle = opendir('/proc/ide');    while ($file = readdir($handle)) {      if (preg_match('/^hd/', $file)) {        $results[$file] = array();         // Check if device is CD-ROM (CD-ROM capacity shows as 1024 GB)        if ($fd = fopen("/proc/ide/$file/media", 'r')) {          $results[$file]['media'] = trim(fgets($fd, 4096));          if ($results[$file]['media'] == 'disk') {            $results[$file]['media'] = 'Hard Disk';          }           if ($results[$file]['media'] == 'cdrom') {            $results[$file]['media'] = 'CD-ROM';          }           fclose($fd);        }         if ($fd = fopen("/proc/ide/$file/model", 'r')) {          $results[$file]['model'] = trim(fgets($fd, 4096));          if (preg_match('/WDC/', $results[$file]['model'])) {            $results[$file]['manufacture'] = 'Western Digital';          } elseif (preg_match('/IBM/', $results[$file]['model'])) {            $results[$file]['manufacture'] = 'IBM';          } elseif (preg_match('/FUJITSU/', $results[$file]['model'])) {            $results[$file]['manufacture'] = 'Fujitsu';          } else {            $results[$file]['manufacture'] = 'Unknown';          }           fclose($fd);        }         if ($fd = fopen("/proc/ide/$file/capacity", 'r')) {          $results[$file]['capacity'] = trim(fgets($fd, 4096));          if ($results[$file]['media'] == 'CD-ROM') {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -