PHP函数:snmpwalk()

 

取得所有类。

语法: array snmpwalk(string hostname, string community, string object_id, int [timeout], int [retries]);

返回值: 数组

函数种类: 网络系统

内容说明

本函数可用来取得所有类识别代码 (OID, Object Identifier),取得类为从根类 (root) 开始的全部 MIB 类。参数 hostname 为指定的机器。参数 community 为社群名称,有 public 或 private 等。参数 object_id 即为 OID 类,为 MIB 所定义的类,只要输入空字符串即可。返回值为 OID 数组,若失败则返回 false。

使用范例

下面为部份范例
<?php
$a = snmpwalk("127.0.0.1", "public", ""); 
for ($i=0; $i<count($a); $i++) {
  echo $a[$i]."<br>\n";
}
?>


要在 PHP 中使用 SNMP 网管函数,需要确定是否可以使用 SNMP 功能。UNIX 系统需要先加装 UCD SNMP 程序,可在 http://ucd-snmp.ucdavis.edu 取得。Windows NT 需要先安装 SNMP 的系统服务。Windows 95/98 系列则无法使用本功能。

值得注意的是 UNIX 平台在编译 UCD SNMP 程序之前,要先将 config.h 文件中的 NO_ZEROLENGTH_COMMUNITY 常量 define 设成 1,也就是将该行的行首 # 字符删掉。如下例

define NO_ZEROLENGTH_COMMUNITY 1

若网络部分 (segmentation) 有怪异的情形,可能就不能用上面的方式了。而若懒得重新编译 UCD SNMP,可以在配置 PHP 时加入 –enable-ucd-snmp-hack 的选项。


当前日志信息