powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / SNMP протокол. Проблема получения значения
6 сообщений из 6, страница 1 из 1
SNMP протокол. Проблема получения значения
    #32927250
alextim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Windows XP. С++ Builder

Что в этом коде не так. Уже неделю лбом бьюсь. Все отрабатывает на ура, но как только дело доходит до получения значения... Получаю одно и тоже значение и ошибку в результате получения.

number 127L (0x0000007F)
unsigned32 127UL (0x0000007F)
counter64 { 127, 1, { 127, 1 }, 4294967423 }
string { 127, 1, { 127, 1 }, 4294967423 }
........

Причем все функции выполняются корректно.
SNMP протокол установлен.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
 LPSNMP_MGR_SESSION session ;
 session = SnmpMgrOpen("localhost", "public",  1000 ,  1 ) ;

 if (session!=NULL)
  {
   RFC1157VarBindList *BindList ;
   RFC1157VarBind *Bind ;

   AsnInteger errorStatus ;
   AsnInteger errorIndex ;

   try
    {
     BindList->list = (RFC1157VarBind*)SnmpUtilMemAlloc(sizeof(RFC1157VarBind)) ;
     BindList->len =  1  ;

     AsnObjectIdentifier Oid ;
     AnsiString asOid = ".iso.org.dod.internet.mgmt.mib-2.system.sysDescr" ;

     if (SnmpMgrStrToOid(asOid.c_str(), &Oid))
      {
       BindList->list->name = Oid ;
       BindList->list->value.asnType = ASN_NULL ;

       bool bSuccess = SnmpMgrRequest(session, ASN_RFC1157_GETNEXTREQUEST,
                              BindList, &errorStatus, &errorIndex) ;
       if (bSuccess)
        ;
      }
    }
   __finally
    {
     SnmpUtilMemFree(BindList->list) ;
    }
  }
...
Рейтинг: 0 / 0
SNMP протокол. Проблема получения значения
    #32927764
Frame Relay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С SNMP-API (Win2000) не работал, работал с WinSNMP API (надстройка над стандартным SNMP). Поэтому могу лишь предположить, что дело в неуказании номера инстанса в OID.
Было:".iso.org.dod.internet.mgmt.mib-2.system.sysDescr"
Попробовать:".iso.org.dod.internet.mgmt.mib-2.system.sysDescr.0" через
SNMP_PDU_GET ?
...
Рейтинг: 0 / 0
SNMP протокол. Проблема получения значения
    #32928762
alextim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и так .iso.org.dod.internet.mgmt.mib-2.system.sysDescr.0
и так .iso.org.dod.internet.mgmt.mib-2.system.sysDescr
и так bool bSuccess = SnmpMgrRequest(session, ASN_RFC1157_GETREQUEST,
BindList, &errorStatus, &errorIndex) ;
и так bool bSuccess = SnmpMgrRequest(session, SNMP_PDU_GET,
BindList, &errorStatus, &errorIndex) ;

чей-то одно и тоже.
...
Рейтинг: 0 / 0
SNMP протокол. Проблема получения значения
    #32928868
Frame Relay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте в параметрах функции SnmpMgrOpen указать "127.0.0.1" вместо "localhost" и если не поможет, поиграйте значениями таймаута и числа повторов.
Что возвращают errorStatus и errorIndex?
Проверьте, запущена ли "Служба SNMP".
Проверьте её свойства:
Вкладка "Безопасность" — состояние флажка "Посылать ловушку проверки подлинности". Если установлена, то в списке "Приемлемые имена сообществ" какие есть имена сообществ и какие у них права? Ниже на той же вкладке — если включено "Принимать пакеты SNMP только от этих узлов", то какие адреса введены в список ниже? localhost и 127.0.0.1 должны быть установлены.
Если уже ничего не поможет, то попробуйте поработать с WinSNMP (основана на том же API, но выше уровень и поэтому проще в использовании).
...
Рейтинг: 0 / 0
SNMP протокол. Проблема получения значения
    #32929002
alextim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что возвращают errorStatus и errorIndex?
-----------------------------------------
После функции SnmpMgrRequest оба возвращают 0 и функция судя по возвращаемому значению отрабатывает корректно.

Попробуйте в параметрах функции SnmpMgrOpen указать "127.0.0.1" вместо
"localhost"
----------------------------------------------------------------------------
Тоже самое

Вкладка "Безопасность" — состояние флажка "Посылать ловушку проверки подлинности". Если установлена, то в списке "Приемлемые имена сообществ" какие есть имена сообществ и какие у них права?
-----------------------------------------------------------------------------------
Флажок установлен. Среди имен NONE, NOTIFY, READ WRITE, READ ONLY, READ CREATE. Имя public.

localhost и 127.0.0.1 установил, но тот же самый эффект.
...
Рейтинг: 0 / 0
SNMP протокол. Проблема получения значения
    #32932813
Frame Relay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А слона-то я и не заметил!!!
У Вас же стоит XP! А сервиспак второй на ней поставлен? Если да, то причина неработы может быть именно в этом сервиспаке. (Поройтесь в разделе Windows по SP2). У меня Win2000 Rus SP4 и я коннектился как к себе, так и к управляемым свичам (3Com SuperStack II 1100), так и к сервакам Win2000 (использовал WinSNMP). Если будет время, попробую Ваш пример проверить у себя.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / SNMP протокол. Проблема получения значения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]