2017-05-11 7 views
0

私は比較的新しいpysnmpです。私の現在の要件は、SNMPトラップのトラップソースをサポートすることです。私はこれをpysnmp ntforg.NotificationOriginator構造体でどのようにサポートできるかを理解しようとしています。次のようにトラップを送信するためのsnmp-server pysnmpを使用したトラップソース

私の現在のコードスニペットは、次のとおりです。

varBinds = rfc1902.ObjectIdentity('SNMPv2-MIB', 'coldStart') 
    trapVarBinds = trapAgent.VarBinds(varBinds,'','') 
    trapPdu = rfc1902.NotificationType(
       varBinds 
      ).resolveWithMib(self.mibViewController)   
    SendTrap(trapAgent.TrapData(trapPdu,trapVarBinds)) 

def SendTrap(self,trapData): 
    for server in trapServer: #list of trapServer config info 
     data = trapServer[server] 
     print 'Trap server:%s'%(data,) 
     sendRequestHandle = ntforg.NotificationOriginator(snmpContext).sendVarBinds(
     snmpEngine, 
     data.Name, 
     #None,'', 
     snmpContext.contextEngineId,'', 
     trapData.trapPdu 
     ) 

ここトラップソース用にサポートする方法上の任意の洞察/アドバイスはとても参考になります。ありがとう!

+0

以下のように送信元IPとポートを指定することができますNotification Originator

を参照してください? [例](http://pysnmp.sourceforge.net/examples/hlapi/asyncore/sync/agent/ntforg/common-notifications.html#snmpv2c-trap-via-notification-type)またはSNMPトラップ送信者があります。 –

+0

trap sourceは、トラップ送信元(ip/interface)を設定する方法です。 snmp-server trap-source: SNMPトラップの発信元となるインターフェイス(したがって対応するIPアドレス)を指定します。 – Mady

答えて

0

はあなたがトラップソースが何であるかを明確にしてくださいすることができ

from pysnmp.entity import config 
from pysnmp.carrier.asynsock.dgram import udp 

config.addSocketTransport(
snmpEngine, 
udp.domainName, 
udp.UdpSocketTransport().openClientMode(iface=('127.0.0.1', 1024)) 
) 
関連する問題