pysnmp, добавляющий суффикс к идентификатору объекта

1

Я пытаюсь использовать метод setCmd() в pysnmp для установки переменной. У меня возникают проблемы с определением определенного объекта, потому что кажется, что pysnmp добавляет ".0" к идентификатору объекта, который я хочу установить. Почему это происходит?

Выход, который я получаю:

noSuchName at 1.3.6.1.4.1.2682.1.2.3.4.0

Содержание скрипта:

errorIndication, errorStatus, errorIndex, varBinds = next(
    setCmd(SnmpEngine(),
           CommunityData('dps_public', mpModel=0),
           UdpTransportTarget(('192.168.1.100', 161)),
           ContextData(),
           ObjectType(ObjectIdentity('1.3.6.1.4.1.2682.1.2.3.4'),
                      Integer(2)))
)

if errorIndication:
    print(errorIndication)
elif errorStatus:
    print('%s at %s' % (errorStatus.prettyPrint(),
                        errorIndex and varBinds[int(errorIndex) - 1][0] or '?'))
else:
    for varBind in varBinds:
        print(' = '.join([x.prettyPrint() for x in varBind]))
Теги:
python-3.x
snmp
pysnmp

1 ответ

1
Лучший ответ

Я подозреваю, что вы получаете этот измененный OID от вашего агента SNMP (что, я думаю, было бы нарушением протокола). Насколько я знаю, pysnmp не должен путаться с OID.

Чтобы проверить, можете ли вы попробовать свой сценарий против агента SNMP на demo.snmplabs.com и/или включить отладку pysnmp и посмотреть, что происходит в PDU от агента SNMP, который вы запрашиваете.

from pysnmp import debug

debug.setLogger(debug.Debug('msgproc'))

...
  • 0
    Похоже, что в конце дня предоставленная документация была неверной, и ObjectIdentifier должен был быть ObjectIdentity('1.3.6.1.4.1.2682.1.2.3.4.0') . Отладка помогла, хотя. Благодарю.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню