def hook_to_reactor(self): transport_dispatcher = TwistedDispatcher() transport_dispatcher.registerRecvCbFun(self.message_received) transport_dispatcher.registerTransport( udp.domainName, udp.UdpTwistedTransport().openServerMode((self.ip, self.port))) LOG.info("%s (SNMP): Registered on %s udp/%s with community %s", self.name, self.ip, self.port, self.community)
def __init__(self, host, port, community): self.snmp = engine.SnmpEngine() self.snmp.registerTransportDispatcher(dispatch.TwistedDispatcher()) config.addV1System(self.snmp, 'my-area', community) config.addTargetParams(self.snmp, 'my-creds', 'my-area', 'noAuthNoPriv', 0) config.addSocketTransport(self.snmp, udp.domainName, udp.UdpTwistedTransport().openClientMode()) config.addTargetAddr(self.snmp, 'my-router', udp.domainName, (host, port), 'my-creds')
def __init__(self): self.unReadyNodes = list() self.identifiers = dict() self.snmpEngine = engine.SnmpEngine() self.bcmdgen = cmdgen.BulkCommandGenerator() self.snmpEngine.registerTransportDispatcher( dispatch.TwistedDispatcher()) config.addV1System(self.snmpEngine, 'test-agent', SNMP_COMMUNITY) config.addTargetParams(self.snmpEngine, 'myParams', 'test-agent', 'noAuthNoPriv', 1) config.addSocketTransport(self.snmpEngine, udp.domainName, udp.UdpTwistedTransport().openClientMode()) self.carbonFact = CarbonFactory(self) reactor.connectTCP(GRAPHITE_HOST, 2003, self.carbonFact)
snmpEngine, 'usr-md5-des', config.usmHMACMD5AuthProtocol, 'authkey1', config.usmDESPrivProtocol, 'privkey1' ) config.addTargetParams(snmpEngine, 'my-creds', 'usr-md5-des', 'authPriv') # # Setup transport endpoint and bind it with security settings yielding # a target name # # UDP/IPv4 config.addTransport( snmpEngine, udp.domainName, udp.UdpTwistedTransport().openClientMode() ) config.addTargetAddr( snmpEngine, 'my-router', udp.domainName, ('195.218.195.228', 161), 'my-creds' ) # Error/response receiver def cbFun(cbCtx): (errorIndication, errorStatus, errorIndex, varBindTable) = cbCtx if errorIndication: print(errorIndication) elif errorStatus: print('%s at %s' % ( errorStatus.prettyPrint(),
from twisted.internet import reactor from pysnmp.entity import engine, config from pysnmp.carrier.twisted.dgram import udp from pysnmp.entity.rfc3413 import ntfrcv from pysnmp.proto import rfc1902 # Create SNMP engine with autogenernated engineID and pre-bound # to socket transport dispatcher snmpEngine = engine.SnmpEngine() # Transport setup # UDP over IPv4 config.addTransport( snmpEngine, udp.domainName, udp.UdpTwistedTransport().openServerMode(('127.0.0.1', 162))) # -- begin of SNMPv3/USM setup # user: usr-md5-des, auth: MD5, priv DES config.addV3User(snmpEngine, 'usr-md5-des', config.usmHMACMD5AuthProtocol, 'authkey1', config.usmDESPrivProtocol, 'privkey1') # user: usr-md5-des, auth: MD5, priv DES, securityEngineId: 8000000001020304 # this USM entry is used for TRAP receiving purposes config.addV3User( snmpEngine, 'usr-md5-des', config.usmHMACMD5AuthProtocol, 'authkey1', config.usmDESPrivProtocol,
# SecurityName <-> CommunityName mapping config.addV1System(snmpEngine, 'my-area', 'public') # Specify security settings per SecurityName (SNMPv1 - 0, SNMPv2c - 1) config.addTargetParams(snmpEngine, 'my-creds', 'my-area', 'noAuthNoPriv', 1) # # Setup transport endpoint and bind it with security settings yielding # a target name # # UDP/IPv4 config.addTransport( snmpEngine, udp.domainName, udp.UdpTwistedTransport().openClientMode(('0.0.0.0', 61024))) config.addTargetAddr(snmpEngine, 'my-router', udp.domainName, ('195.218.195.228', 161), 'my-creds') # Error/response receiver def cbFun(cbCtx): (errorIndication, errorStatus, errorIndex, varBindTable) = cbCtx if errorIndication: print(errorIndication) elif errorStatus: print('%s at %s' % (errorStatus.prettyPrint(), errorIndex and varBindTable[-1][int(errorIndex) - 1][0] or '?')) else: for varBindRow in varBindTable: