python pysnmp使用,,SNMP标准引入一组
python pysnmp使用,,SNMP标准引入一组
SNMP标准引入一组ASN.1语言元素,称之为SMI(Structure of ManagementInformation)。由SMI描述的相互关联的被管对象(Managed Objects)组成MIB(ManagementInformation Base)模块。
核心MIB中经常用到的ManagedObjects成为SNMP标准的一部分。剩下的MIB一般由设备生产商在其设备中创建。(也就是说这些MIB是生产商和设备相关的)
PySNMP是一个纯粹用Python实现的SNMP。
用PySNMP的最抽象的API为One-lineApplications。其中有两类API:同步的和非同步的,都在模块pysnmp.entity.rfc3413.oneliner.cmdgen 中实现。
所以在使用的时候为了方便,可以
from pysnmp.entity.rfc3413.oneliner import cmdgen然后用cg = cmdgen.CommandGenerator()来产生一个CommandGenerator对象,以后调用cg的getCmd等方法来获取或者设置网络设备信息。
getCmd()需要三个参数:
1.cmdgen.CommunityData() ##社区信息 传入三个数据,安全my-agent、社区名public、snmp协议版本,之间用逗号隔开,例如 cmdgen.CommunityData(‘my-agent‘,‘public‘,1)
2.cmdgen.UdpTransportTarget()##通道参数,传入一个元组,包含主机IP/域名和端口,例如:cmdgen.UdpTransportTarget((‘192.168.70.237‘,161)
3. OID##mib值,例如 ‘.1.3.6.1.4.1.1800.5.13.2‘
注意:三个参数之间用 ","隔开。
下面上个例子是获得设备snmp数据:
frompysnmp.entity.rfc3413.onelinerimportcmdgendefsnmpget():cg=cmdgen.CommandGenerator()##获得CommandGenerator对象errorIndication,errorStatus,errorIndex,varBinds=cg.getCmd(#0代表v1,1代表v2ccmdgen.CommunityData(‘my-agent‘,‘public‘,1),##社区信息,my-agent,public表示社区名,1表示snmpv2c版本,0为v1版本cmdgen.UdpTransportTarget((‘192.168.70.237‘,161)),##这是传输的通道,传输到IP192.168.70.237,端口161上(snmp标准默认161UDP端口)‘.1.3.6.1.4.1.1800.5.13.2‘##传送的OID,个人认为MIB值)printstr(varBinds[0][1]);##varBinds返回是一个stulp,含有MIB值和获得值defrunit(loop=1):foriinrange(loop):snmpget()#printiif__name__=="__main__":runit(loop=1)
参考:http://blog.sina.com.cn/s/blog_54ce569c01009ccb.html
本文出自 “Lingx” 博客,请务必保留此出处http://13907664629.blog.51cto.com/8787187/1631278
python pysnmp使用
相关内容
- python开发之Tkinter可视化,,引言: 1.Tkin
- python查询mx ns 记录,,#!/usr/bin
- Emacs之Python编程环境配置 - elpy,,由于之前一直使用Em
- Python Tutor,,Python Tut
- python ipaddress模块使用,,#-*-coding
- 大津法(Python实现),,在计算机视觉和图像处
- python安装scikit-learn遇到问题汇总,,python开源工具
- Python编程从入门到实践(高清中文版PDF+高清英文版PD
- 运维:windows+python+route的一次相遇,, 自言自语作为一名
- python2.+进化至python3.+ 语法变动差异(不定期更新),
评论关闭