snmp (网管协议, simple network management protocol) 是身为 mis 或是网络管理人员所必须要碰到的重要课题,中文方面可参考张苑蓉所译的 snmp 网络管理协议 (isbn: 957-8247-14-1),或者直接参考 rfc1089 文件。另外在 http://www.snmp.com 也有许多资料。
要在 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 的选项。
snmpget: 取得指定类识别码。
snmpwalk: 取得所有类。
snmpwalkoid: 取得网络本体树状信息。
snmp_get_quick_print: 取得 ucd 函数库中的 quick_print 值。
snmp_set_quick_print: 配置 ucd 函数库中的 quick_print 值。
snmpget
取得指定类识别码。
语法: int snmpget(string hostname, string community, string object_id);
返回值: 整数
函数种类: 网络系统
内容说明: 本函数可用来取得指定的类识别代码 (oid, object identifier)。参数 hostname 为指定的机器。参数 community 为社群名称,有 public 或 private 等。参数 object_id 即为 oid 类,为 mib 所定义的类。返回值为 oid 值,若失败则返回 false。
使用范例
下面为部份范例
<?php
snmpget("127.0.0.1", "public", "system.syscontact.0");
| 对此文章发表了评论 |
