Python pysnmp使用方法及代码实例

作者:邯郸-小刀 时间:2022-02-07 16:36:14 

SNMP标准引入一组ASN.1语言元素,称之为SMI(Structure of Management Information)。由SMI描述的相互关联的被管对象(Managed Objects)组成MIB(Management Information Base)模块。

核心MIB中经常用到的Managed Objects成为SNMP标准的一部分。剩下的MIB一般由设备生产商在其设备中创建。(也就是说这些MIB是生产商和设备相关的)

PySNMP是一个纯粹用Python实现的SNMP。

用PySNMP的最抽象的API为One-line Applications。其中有两类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数据:


from pysnmp.entity.rfc3413.oneliner import cmdgen

def snmpget():
 cg = cmdgen.CommandGenerator() ##获得CommandGenerator对象
 errorIndication, errorStatus, errorIndex, varBinds = cg.getCmd(
  #0代表v1,1代表v2c
 cmdgen.CommunityData('my-agent', 'public', 1), ##社区信息,my-agent ,public 表示社区名,1表示snmp v2c版本,0为v1版本
 cmdgen.UdpTransportTarget(('192.168.70.237', 161)),##这是传输的通道,传输到IP 192.168.70.237, 端口 161上(snmp标准默认161 UDP端口)
 '.1.3.6.1.4.1.1800.5.13.2' ##传送的OID,个人认为MIB值
 )
 print str(varBinds[0][1]); ##varBinds返回是一个stulp,含有MIB值和获得值
def runit(loop=1):
 for i in range(loop):
   snmpget()
   #print i
if __name__ == "__main__":
 runit(loop=1)

来源:https://www.cnblogs.com/xzlive/p/13246509.html

标签:Python,py,snmp
0
投稿

猜你喜欢

  • ThinkPHP中__initialize()和类的构造函数__construct()用法分析

    2023-07-08 01:26:24
  • 用header 发送cookie的php代码

    2023-07-11 11:15:06
  • PHPStudy下如何为Apache安装SSL证书的方法步骤

    2023-11-14 18:57:09
  • 解决Git Bash中文乱码的问题

    2023-04-07 09:50:40
  • Symfony模板的快捷变量用法实例

    2023-11-15 04:43:24
  • go语言实现简易比特币系统钱包的原理解析

    2024-05-22 10:12:02
  • Python基于Tkinter模块实现的弹球小游戏

    2022-11-25 15:32:16
  • 使用python flask框架开发图片上传接口的案例详解

    2021-12-26 05:54:30
  • ASP项目中的asp分页 翻页模块函数

    2010-04-03 21:03:00
  • MySQL Order By Rand()效率

    2011-01-04 19:34:00
  • Oracle merge合并更新函数实例详解

    2023-07-23 02:45:02
  • 对python中使用requests模块参数编码的不同处理方法

    2022-11-02 01:30:29
  • MySQL优化之如何查找SQL效率低的原因

    2024-01-12 21:03:55
  • python程序中调用其他程序的实现

    2021-08-07 12:33:16
  • Python爬虫beautifulsoup4常用的解析方法总结

    2022-09-01 11:58:54
  • python产生模拟数据faker库的使用详解

    2022-05-25 22:43:35
  • asp之自动闭合HTML/ubb标签函数 附简单注释

    2011-02-28 11:24:00
  • python随机数分布random测试

    2022-01-05 00:41:17
  • Python爬虫入门教程01之爬取豆瓣Top电影

    2023-05-22 16:45:00
  • 深入了解Mysql逻辑架构

    2024-01-24 21:38:58
  • asp之家 网络编程 m.aspxhome.com