python netsnmp_python netsnmp与pysnmp

据说,如果论性能,netsnmp更强,而且netsnmp天生支持walk, 但是在安装方式上, pysnmp简单直接,netsnmp需要先安装netsnmp,然后安装相应的python模块,比较麻烦。

参考 http://www.huilog.com/?p=629, 基本上分为下载, python setup.py build, python setup.py install 两步

而且pysnmp也可以自己写代码实现walk

def walk(host, oid, community):

for (errorIndication,errorStatus,errorIndex,varBinds) in nextCmd(SnmpEngine(),

CommunityData(community),

UdpTransportTarget((host, 161)),

ContextData(),

ObjectType(ObjectIdentity(oid)),

lexicographicMode=False # 限制其只在指定范围内walk

):

if errorIndication:

# print(errorIndication, file=sys.stderr)

break

elif errorStatus:

# print('%s at %s' % (errorStatus.prettyPrint(),

# errorIndex and varBinds[int(errorIndex) - 1][0] or '?'),

# file=sys.stderr)

break

else:

# return varBinds

for varBind in varBinds:

yield varBind

# print(varBind)

defget(host, oid, snmpCommunity):

errorIndication, errorStatus, errorIndex, varBinds=next(

getCmd(SnmpEngine(),

CommunityData(snmpCommunity),

UdpTransportTarget((host,161)),

ContextData(),

ObjectType(ObjectIdentity(oid))

)

)iferrorIndication:print(errorIndication)eliferrorStatus:print('%s at %s' %(errorStatus.prettyPrint(),

errorIndexand varBinds[int(errorIndex) - 1][0] or '?'))else:for varBind invarBinds:yield varBind

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值