帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > PHP编程
SNMP 网管函数库
作者:佚名 发布时间:2005-04-02 来源:不详
 
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");
?>

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";
}
?>

snmpwalkoid
取得网络本体树状信息。
语法: array snmpwalkoid(string hostname, string community, string object_id, int [timeout], int [retries]);
返回值: 数组
函数种类: 网络系统
内容说明: 本函数可用来取得所有类识别代码 (OID, Object Identifier),取得类为从根类 (root) 开始的全部 MIB 类及其值。参数 hostname 为指定的机器。参数 community 为社群名称,有 public 或 private 等。参数 object_id 即为 OID 类,为 MIB 所定义的类,只要输入空字符串即可。返回值为数组,若失败则返回 false。
使用范例
下面为部份范例
<?php
$a = snmpwalkoid("127.0.0.1", "public", "");
for (reset($a); $i = key($a); next($a)) {
echo $i.": ".$a[$i]."<br>n";
}
?>

snmp_get_quick_print
取得 UCD 函数库中的 quick_print 值。
语法: boolean snmp_get_quick_print(void);
返回值: 布尔值
函数种类: 网络系统
内容说明: 本函数可用来取得 UCD SNMP 函数库中的 quick_print 值,在 Windows NT 系统上本函数无法作用。本函数不需要输入参数,返回 0 表示 quick_print 关闭,1 表示打开。

snmp_set_quick_print
配置 UCD 函数库中的 quick_print 值。
语法: void snmp_set_quick_print(boolean quick_print);
返回值: 无
函数种类: 网络系统
内容说明: 本函数配置 UCD SNMP 函数库中的 quick_print 值,在 Windows NT 系统上本函数无法作用。参数 quick_print 值为 0 表示 quick_print 关闭,1 表示打开。本函数无返回值。
使用范例
<?php
snmp_set_quick_print(0);
$a = snmpget("127.0.0.1", "public", ".1.3.6.1.2.1.2.2.1.9.1");
echo $a."n";
snmp_set_quick_print(1);
$a = snmpget("127.0.0.1", "public", ".1.3.6.1.2.1.2.2.1.9.1");
echo $a."n";
?>
返回值为
Timeticks: (0) 0:00:00.00
0:00:00.00

  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
无相关信息

   栏目导行
  PHP编程
  ASP编程
  ASP.NET编程
  JAVA编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·DiscuzX2.5会员整合通行证发布
·帝国CMS 7.0版本功能建议收集
·帝国网站管理系统2012年授权购买说
·PHPWind8.7会员整合通行证发布
·[官方插件]帝国CMS-访问统计插件
·[官方插件]帝国CMS-sitemap插件
·[官方插件]帝国CMS内容页评论AJAX分
   类别最新
·Windows下集成安装Apache,PHP,MYSQ
·Mysql注入:SQL Injection with MyS
·PHP 的来龙去脉
·PHP 的功能概述
·PHP与其它CGI的比较
·PHP 的编译配置详细选项
·php.ini 配置详细选项
·如何写作PHP程序
·Hello,World
·嵌入方法
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统