簡體   English   中英

在PySNMP中查詢數字OID?

[英]Querying numerical OID in PySNMP?

我正在嘗試用Python查詢Cisco路由設備上的SNMP變量,並且苦苦掙扎。

我有一個正常的snmpwalk命令:

$snmpwalk -v2c -c <our_community_string> <device_ip_address> 1.3.6.1.4.1.9.9.42.1.2.10.1.1.950
SNMPv2-SMI::enterprises.9.9.42.1.2.10.1.1.950 = Gauge32: 68

現在我正在嘗試使用pysnmp在Python中做同樣的事情。

我嘗試使用基於這里的示例的東西 - http://pysnmp.sourceforge.net/examples/current/index.html - 但得到了一個SmiError:

In [1]: from pysnmp.entity.rfc3413.oneliner import cmdgen

In [2]: cmdGen = cmdgen.CommandGenerator()

In [3]: errorIndication, errorStatus, errorIndex, varBinds = cmdGen.getCmd(
...:     cmdgen.CommunityData('0pe3aro'),
...:     cmdgen.UdpTransportTarget(('10.65.113.28', 161)),
...:     cmdgen.MibVariable('1.3.6.1.4.1.9.9.42.1.2.10.1.1.950', 0)
...: )

但我得到以下內容:

SmiError: MIB file "1.3.6.1.4.1.9.9.42.1.2.10.1.1.950.py[co]" not found in search path

基本上 - 我想在NetSNMP中保持平衡,但在PySNMP( http://ben.akrin.com/?p=1234 )中。

有人知道在PySNMP中查詢數字OID的簡單方法嗎?

干杯,維克多

我相信以下代碼適合您:

from pysnmp.entity.rfc3413.oneliner import cmdgen

cmdGen = cmdgen.CommandGenerator()

errorIndication, errorStatus, errorIndex, varBinds = cmdGen.getCmd(
    cmdgen.CommunityData('public'),
    cmdgen.UdpTransportTarget(('demo.snmplabs.com', 161)),
    '1.3.6.1.2.1.1.3.0'
)

print('\n'.join([ '%s = %s' % varBind for varBind in varBinds]))

您可以將其剪切並粘貼到Python提示中以嘗試進行實驗。

MibVariable對象可用於按名稱引用MIB符號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM