2016-09-05 10 views
1

пытается преобразовать эту строку, чтобы pysnmpсиг переключатель включения порта pysnmp

SNMPSET -v 2c -На -r 5 -t 2 -c частный IP-адрес .1.3.6.1.2.1.2.2.1.7.369098771 я 1

Я пытаюсь взять функцию рабочей прогулки и изменить его, но мое знание с SNMP делает его очень трудно понять pysnmp Doc

это только часть кода

из pysnmp.entity .rfc3413.oneliner импорт cmdgen

 device_target = (self.ip, self.port) 
     res = None 
     # Create a PYSNMP cmdgen object 
     cmd_gen = cmdgen.CommandGenerator() 
     (error_detected, error_status, error_index, snmp_data) = cmd_gen.setCmd(
      cmdgen.CommunityData(community_string), 
      cmdgen.UdpTransportTarget(device_target), '.1.3.6.1.2.1.2.2.1.7.369098771', 1 
      lookupNames=True, lookupValues=True) 

Я знаю, что я что-то не хватает, может ли один помочь, пожалуйста

ответ

0

я настоятельно рекомендую модернизировать ваш pysnmp до последней выпущенной версии и использовать интерфейс «hlapi».

from pysnmp.hlapi import * 

device_target = (self.ip, self.port) 
community_string = 'private' 

cmd_gen = setCmd(SnmpEngine(), 
       CommunityData(community_string), 
       UdpTransportTarget(device_target, timeout=2.0, retries=5), 
       ContextData(), 
       ObjectType(ObjectIdentity('1.3.6.1.2.1.2.2.1.7.369098771'), Integer32(1)), 
       lookupMib=False 
) 

res = None # True denotes a failure 

errorIndication, errorStatus, errorIndex, varBinds = next(cmd_gen) 

if errorIndication: 
    res = errorIndication 
elif errorStatus: 
    res = '%s at %s' % (errorStatus.prettyPrint(), 
         errorIndex and varBinds[int(errorIndex) - 1][0] or '?') 

if res: 
    print('SNMP failed: %s' % res) 

Ссылки: here

+0

спасибо !!! работает ! –