Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 26.05.2008, 13:02   #1
baarseek
Новичок
 
Регистрация: 26.05.2008
Сообщений: 1
Репутация: 10
По умолчанию 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
Адрес: /dev/random
Сообщений: 2,833
Репутация: 927
По умолчанию

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

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 в 21:22.
erick вне форума   Ответить с цитированием
Старый 18.02.2009, 02:21   #4
SkyM@n
Laravel/Vue expert
ПрофессионалФорумчанин
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Адрес: /dev/random
Сообщений: 2,833
Репутация: 927
По умолчанию

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

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

Код 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 в 02:41.
erick вне форума   Ответить с цитированием
Старый 19.02.2009, 02:40   #6
SkyM@n
Laravel/Vue expert
ПрофессионалФорумчанин
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Адрес: /dev/random
Сообщений: 2,833
Репутация: 927
По умолчанию

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

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

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


18:23.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.