Python使用pysnmp发送snmp v2c 告警

来源:互联网 发布:oracle怎么导出数据库 编辑:程序博客网 时间:2024/05/22 06:56
# Notification Originator Application (TRAP)from pysnmp.carrier.asynsock.dispatch import AsynsockDispatcherfrom pysnmp.carrier.asynsock.dgram import udpfrom pyasn1.codec.ber import encoderfrom pysnmp.proto import api# Protocol version to useverID = api.protoVersion2cpMod = api.protoModules[verID]# Build PDUtrapPDU = pMod.TrapPDU()pMod.apiTrapPDU.setDefaults(trapPDU)# Traps have quite different semantics among proto versionsif verID == api.protoVersion2c:    var = []      oid = (1, 3, 6, 1, 4, 1, 2014516, 1, 1, 1, 2, 0)      val = pMod.Integer(1)      var.append((oid, val))      pMod.apiTrapPDU.setVarBinds(trapPDU, var)          # Build messagetrapMsg = pMod.Message()pMod.apiMessage.setDefaults(trapMsg)pMod.apiMessage.setCommunity(trapMsg, 'public')pMod.apiMessage.setPDU(trapMsg, trapPDU)transportDispatcher = AsynsockDispatcher()transportDispatcher.registerTransport(    udp.domainName, udp.UdpSocketTransport().openClientMode()    )transportDispatcher.sendMessage(    encoder.encode(trapMsg), udp.domainName, ('localhost', 162) //本机测试使用localhost,应为对应trap server 的IP地址。    )transportDispatcher.runDispatcher()transportDispatcher.closeDispatcher()


0 0
原创粉丝点击