⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc1905.py

📁 实现snmp协议的agent 和manager
💻 PY
字号:
"""   An implementation of high-level API to SNMP v.2c message PDU objects   (RFC1905).   Copyright 1999-2004 by Ilya Etingof <ilya@glas.net>. See LICENSE for   details."""# Module public names__all__ = [ 'GetRequestPduMixIn', 'GetNextRequestPduMixIn',            'SetRequestPduMixIn', 'ResponsePduMixIn',            'GetBulkRequestPduMixIn', 'InformRequestPduMixIn',            'ReportPduMixIn', 'SnmpV2TrapPduMixIn', 'registerMixIns' ]from pysnmp.proto import rfc1902, rfc1905from pysnmp.proto.api.generic import rfc1157import pysnmp.proto.api.alphaclass RequestPduMixIn(rfc1157.RequestPduMixIn):    def apiGenSetVarBind(self, varBinds):        tempVarBinds = []        for oid, val in varBinds:            if val is None: val = rfc1902.Null()            tempVarBinds.append((oid, val))        apply(self.apiAlphaSetVarBindList, tempVarBinds)# Request PDU mix-insclass GetRequestPduMixIn(RequestPduMixIn): passclass GetNextRequestPduMixIn(RequestPduMixIn): passclass SetRequestPduMixIn(RequestPduMixIn): passclass InformRequestPduMixIn(RequestPduMixIn): passclass ReportPduMixIn(RequestPduMixIn): passclass SnmpV2TrapPduMixIn(RequestPduMixIn): passclass ResponsePduMixIn(rfc1157.GetResponsePduMixIn): pass# A v1-style aliasGetResponsePduMixIn = ResponsePduMixIn    class GetBulkRequestPduMixIn(RequestPduMixIn):    def apiGenGetNonRepeaters(self): return self.apiAlphaGetNonRepeaters().get()    def apiGenSetNonRepeaters(self, value): self.apiAlphaSetNonRepeaters(value)    def apiGenGetMaxRepetitions(self): return self.apiAlphaGetMaxRepetitions().get()    def apiGenSetMaxRepetitions(self, value): self.apiAlphaSetMaxRepetitions(value)class MessageMixIn(rfc1157.MessageMixIn): passdef mixIn():    """Register this module's mix-in classes at their bases    """    mixInComps = [ (rfc1905.GetRequestPdu, GetRequestPduMixIn),                   (rfc1905.GetNextRequestPdu, GetNextRequestPduMixIn),                   (rfc1905.SetRequestPdu, SetRequestPduMixIn),                   (rfc1905.ResponsePdu, ResponsePduMixIn),                   (rfc1905.GetBulkRequestPdu, GetBulkRequestPduMixIn),                   (rfc1905.InformRequestPdu, InformRequestPduMixIn),                   (rfc1905.ReportPdu, ReportPduMixIn),                   (rfc1905.SnmpV2TrapPdu, SnmpV2TrapPduMixIn),                   (rfc1905.Message, MessageMixIn) ]    for (baseClass, mixIn) in mixInComps:        if mixIn not in baseClass.__bases__:            baseClass.__bases__ = (mixIn, ) + baseClass.__bases__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -