2013-08-05 70 views
0

我能夠從我的機器pysnmp snmpwalk的給timeouterror

snmpwalk的-c公共-v 2C junipertestrtr 1.3.6.1.4.1.2636.5.1.1.2.1.1.1.13.0.1從同一臺計算機的命令運行snmpwalk的線我得到正確的輸出

iso.3.6.1.4.1.2636.5.1.1.2.1.1.1.13.0.1.172.28.254.83.1.172.16.25.82 = Gauge32:64902 iso.3.6.1.4.1.2636.5.1 .1.2.1.1.1.13.0.1.172.28.254.135.1.172.17.25.134 = Gauge32:64902 iso.3.6.1.4.1.2636.5.1.1.2.1.1.1.13.0.1.172.28.255.135.1.172.29.255.136 = Gauge32:64861 iso.3.6.1.4.1.2636.5.1.1.2.1.1.1.13.0.1.172.28.255.135.1.172.28.255.137 = Gauge32:64861 iso.3.6.1.4.1.2636.5.1.1.2.1.1.1.13。 0.1.172.28.255.135.1.172.28.255.138 = Gauge32:64861 iso.3.6.1.4.1。 2636.5.1.1.2.1.1.1.13.0.1.10.1.1.1.1.10.1.1.2 = Gauge32:64810

然而,當我嘗試從pysnmp一樣,我得到一個失敗

from pysnmp.entity.rfc3413.oneliner import cmdgen 
from pysnmp.smi import * 


cmdGen = cmdgen.CommandGenerator() 

errorIndication, errorStatus, errorIndex, varBind = cmdGen.nextCmd(
    cmdgen.CommunityData('public', 1), 
    cmdgen.UdpTransportTarget(('junipertestrtr', 161)), 
    (1,3,6,1,4,1,2636,5,1,1,2,1,1,1,13,0,1), 

) 

print errorIndication, errorStatus 

for varBindTableRow in varBind: 
    for name, val in varBindTableRow: 
     print name, val 

我得到下面的錯誤消息 「請求超時0」

回答

0

你應該只使用:

cmdgen.CommunityData('public') 

或:

cmdgen.CommunityData('public', mpModel=1) # mpModel specifies SNMP protocol version 

或:

cmdgen.CommunityData('my-snmp-agent', 'public', 1) 

您也可以使pysnmp調試你的腳本開始,看看有什麼引擎蓋下回事:

debug.setLogger(debug.Debug('msgproc', 'secmod')) 

的例子一堆可在pysnmp site