php SNMP函数时出错

提示:
Fatal error: Call to undefined function snmpwalkoid() in e:\proj\php\snmp.php on line 2

代码:
<?php
$a = snmpwalk("127.0.0.1", "public", "");
foreach ($a as $val) {
echo "$val<br>";
}
?>

解决:
1.PHP及其模块的安装
a)解压缩;
b)修改php.ini-dist为php.ini;
2.配置文件
a)修改php.ini配置文件
i.修改extension_dir = C:\php\extensions
ii.删除你所需要的扩展模块前的引号(;),例如:
原先:
;extension=php_snmp.dll
修改为:
extension=php_snmp.dll
b)配置系统环境变量(此步一般不需要)
i.在环境变量path中添加C:\php (PHP安装目录)
ii.添加变量,鼠标右键点我的电脑-属性-高级-环境变量-系统变量-新建MIBDIRS=c:\php\mibs, 新建 PHPRC=c:\php
iii.修改注册表 (如果没有就新建字符串值):
HKEY_LOCAL_MACHINE → SOFTWARE → PHP → IniFilePath
值为:C:\php (PHP安装目录)

做完所有工作后重启。
新建一个PHP文件:
代码:
<?php
$a = snmpwalk("127.0.0.1", "public", "");
foreach ($a as $val) {
echo "$val<br>";
}
?>
打开应该可以看到效果了。
------------------------------------------------------------
如果有提示:
Warning: snmpwalk No Response from 127.0.01


则需要Windows 2003 的SNMP配置:
Windows 2003的Snmp默认是不允许直接访问的。需要进行一些参数的配置。

http://www.net-snmp.org/download.html下载net-snmp安装。

安装完Snmp以后在Windows 的服务里的Snmp Service可以看到安全选项。

选择上 发送身份验证陷阱 ,添加 团体为 public ,权限为 只读 。

在下方选择 接受来自这些主机的snmp 数据包 ,添加上snmp browser 的IP地址。

如果是linux,则需要配置snmpd.conf文件:
# vi /etc/snmp/snmpd.conf
修改snmpd.conf文件
1、 com2sec notConfigUser default public
改为: com2sec notConfigUser 127.0.0.1 public
如果要在别的机器(192.168.11.50)上运行观测软件监测(本机ip是192.168.11.134),也应该再加上:
com2sec notConfigUser 192.168.11.50 public

你可能感兴趣的:(snmp)