Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2008, 13:02   #1
baarseek
Новичок
Джуниор
 
Регистрация: 26.05.2008
Сообщений: 1
По умолчанию snmp+php странная проблема

дело такое, мне понадобилось сделать на пхп страницу которая будет по snmp опрашивать сетевые принтеры (hp 4250 например) и выводить статистику: кол-во отпечатанных листов, готовность, тонер и т.д. на просторах рунета я нашел скрипт который по идее полностью удовлетворял моим требованиям, но... он выдавал результаты, только по командам к MIB .1.3.6.1.4.1.11.2.3.9.1.1.3.0 - это статус и .1.3.6.1.2.1.43.10.2.1.4.1.1 - кол-во отпечатанных страниц.
все остальные комманды, подсмотренные с помощью MIB Browser в MIB файле от hp 4250 - выдают ошибку:

Код:
Warning: snmpget() [function.snmpget]: Error in packet: (noSuchName) There is no such variable name in this MIB. in C:\xampp\htdocs\phphp.php on line 32

Warning: snmpget() [function.snmpget]: This name does not exist: .iso.3.6.1.2.1.1.3.6.1.4.1.11.2.3.9.4.2.1.1.3.2.0 in C:\xampp\htdocs\phphp.php on line 32

Код:
$timeout = '300';
$retries = '10';

$community = "public";
$status = snmpget($printers[$i], $community, ".1.3.6.1.4.1.11.2.3.9.1.1.3.0", 
$timeout, $retries);
$pages_printed = snmpget($printers[$i], $community, ".1.3.6.1.2.1.43.10.2.1.4.1.1", $timeout, $retries);
$someone = snmpget($printers[$i], $community, "1.3.6.1.4.1.11.2.3.9.4.2.1.1.3.2.0", $timeout, $retries);
в чем проблема - не пойму, та же программа MIB Browser прекрасно возвращает значения.
baarseek вне форума Ответить с цитированием
Старый 04.06.2008, 17:35   #2
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

покажи дамп $printers
SkyM@n вне форума Ответить с цитированием
Старый 17.02.2009, 20:18   #3
erick
 
Регистрация: 17.02.2009
Сообщений: 3
По умолчанию

SkyM@n у меня ошибка та же
пишу
print(snmpget("localhost", "public", ".1.3.6.1.2.1.1.3"));
или
print(snmpget("localhost", "public", "sysUpTime.0"));
или
print(snmpget("localhost", "public", "sysUpTime"));
или
print(snmpget("localhost", "public", "1.3.6.1.2.1.1.3"));

но всегда выдаются сообщения такого типа
Warning: snmpget() [function.snmpget]: Error in packet: (noSuchName) There is no such variable name in this MIB. in Z:\home\test_snmp\www\index.php on line 11

Warning: snmpget() [function.snmpget]: This name does not exist: .iso.3.6.1.2.1.1.3 in Z:\home\test_snmp\www\index.php on line 11

Комп - Acer Aspire 5720, Vista, Opera, Denwer3_Base_2008-01-13_a2.2.4_p5.2.4_m5.0.45_pma2.6.1 + пакет расширения для snmp.

при этом через командную строку все работает например
snmpget -v 2c -c public 127.0.0.1 sysUpTime.0
ответ выдает без задержек, может как то указать версию протокола? но как это сделать через пхпшную snmpget не знаю (

Последний раз редактировалось erick; 17.02.2009 в 20:22.
erick вне форума Ответить с цитированием
Старый 18.02.2009, 01:21   #4
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Покажите весь код.
SkyM@n вне форума Ответить с цитированием
Старый 18.02.2009, 14:10   #5
erick
 
Регистрация: 17.02.2009
Сообщений: 3
По умолчанию

Было бы что показывать ))

Код HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Test SNMP</title>
</head>
<?php

print(snmpget("localhost", "public", "sysUpTime"));

print('<BR>');

$a = snmpwalk("127.0.0.1", "public", "");
for($i=0; $i<count($a); $i++) {
	print($a[$i].'<BR>');
}
?>
<body>
</body>
</html>
Причем в цикле for($i=0; $i<count($a); $i++) выдается массив. Вся проблемма как раз в формате OID (

Форматируйте ваш код!! //модератор

Последний раз редактировалось SkyM@n; 19.02.2009 в 01:41.
erick вне форума Ответить с цитированием
Старый 19.02.2009, 01:40   #6
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Что дает
snmpwalk -v 2c -c public 127.0.0.1 sysUpTime?
SkyM@n вне форума Ответить с цитированием
Старый 19.02.2009, 14:02   #7
erick
 
Регистрация: 17.02.2009
Сообщений: 3
По умолчанию

через командную строку это
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (4121567) 11:26:55.67

а если в коде
print(snmpwalk("localhost", "public", "sysUpTime")); // я не знаю как форматировать )

то вообще ничего не пишет, пустая страничка.
erick вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Странная загрузка Лубышев Операционные системы общие вопросы 9 17.03.2008 09:24
мониторинг активного сетевого оборудования по протоколу SNMP Virtson Фриланс 2 28.12.2007 13:39
Странная реакция drknn Помощь студентам 2 02.09.2007 15:51
snmp монитор сетевого оборудования testir Помощь студентам 2 05.08.2007 17:47
Странная ошибка Washington БД в Delphi 2 16.03.2007 18:13