Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Indy SNMP, Как правильно написать запрос 
V
    Опции темы
sani79
Дата 14.3.2006, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 14.12.2005

Репутация: нет
Всего: нет



Добрый день. Помогите пожалуйста. Есть задача опросить по SNMP устройство и получить значение конкретной переменной. Как это корректно написать с использованием инди? Может быть у кого нибудь есть пример? Заранее спасибо.
PM MAIL   Вверх
Snowy
Дата 14.3.2006, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Код
var 
  SNMP: TIdSNMP; 
  i:  Integer; 
begin 
  SNMP := TIdSNMP.Create(nil); 
  SNMP.Query.Host := 'localhost';
  SNMP.Query.Community := 'public';
  SNMP.Query.PDUType := PDUGetRequest;
  SNMP.Query.MIBAdd('1.3.6.1.2.1.1.1.0','');
  try
    if SNMP.SendQuery then
    for i := 0 to SNMP.Reply.ValueCount - 1 do
      Memo1.Lines.Add(IntToStr(i) + ': ' + SNMP.Reply.Value[i]);
  finally
    SNMP.Free;
  end;
end;

PM MAIL   Вверх
sani79
Дата 14.3.2006, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 14.12.2005

Репутация: нет
Всего: нет



Спасибо за ответ. Этот пример где то видел. Но результат по нему не получил. Возращается пустое значение Replies: 0. Возможно что то не так сделал. Такой вопрос:
SNMP.Query.Host := 'localhost' в этой строчке ведь нужно указывать IP девайса к которому направлен запрос?
Дело в том что я пробовал делать запрос сторонним MIB броузером - там все нормально. то есть девайс отвечает и корректно возвращает значение нужной переменной. А в delphi не выходит.

PM MAIL   Вверх
Snowy
Дата 14.3.2006, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Цитата(sani79 @ 14.3.2006, 11:42 Найти цитируемый пост)
SNMP.Query.Host := 'localhost' в этой строчке ведь нужно указывать IP девайса к которому направлен запрос?
Естественно. Хотя можно попробовать ее закоментировать.
Мне проверить не на чем.

Цитата(sani79 @ 14.3.2006, 11:42 Найти цитируемый пост)
А в delphi не выходит.
У многих не выходит.
IdSNMP работает не со всеми устройствами.
Какие-то нарекания на него есть, но точно не помню.
Если результата не добъешься, придется писать на IdUDP вручную.
PM MAIL   Вверх
sani79
Дата 14.3.2006, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 14.12.2005

Репутация: нет
Всего: нет



Ясно... не обнадеживает... девайс это APC Symmetra. Планировал опрашивать термодатчик на нем. Может есть другие компоненты по делфи? в смысле snmp...
PM MAIL   Вверх
Snowy
Дата 14.3.2006, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



PM MAIL   Вверх
sani79
Дата 14.3.2006, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 14.12.2005

Репутация: нет
Всего: нет



Спасибо. Сейчас попробую скачать. Firewall пока не пускает, фильтр на zip.
Добавлено @ 12:26
А может можно как нибудь сделать SMNP запрос через какой нибудь скрипт, а потом в дельфи обработать результат? У кого нибудь есть идеи?
PM MAIL   Вверх
Snowy
Дата 14.3.2006, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 53
Всего: 484



Цитата(sani79 @ 14.3.2006, 12:18 Найти цитируемый пост)
А может можно как нибудь сделать SMNP запрос через какой нибудь скрипт
Может и можно. Если есть такой скрипт.

Цитата(sani79 @ 14.3.2006, 12:18 Найти цитируемый пост)
Firewall пока не пускает, фильтр на zip
Скинул на мыло
PM MAIL   Вверх
sani79
Дата 14.3.2006, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 14.12.2005

Репутация: нет
Всего: нет



Спасибо за помощь. Но я наконец разобрался. И могу поделится опытом если кому интересно. Вышеприведеный код правильный и работает. Проблема была в идентификаторе переменной. Изначально я устанавливал ее такой как в документации и ничего не получалось, затем я указал тот же id, но в концовку добавил .1 что похоже является id ЗНАЧЕНИЯ переменной и все завершилось получением результата... Всем удачи!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0476 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.