python解析处理snmp回显----snmp
查看服务端配置:https://www.cnblogs.com/dpf-10/p/9175409.html
查看内容示例:
D:\python>snmpwalk -v 2c -c public 127.0.0.1 .1.3.6.1.4.1.2021.5000
UCD-SNMP-MIB::ucdavis.5000.1. = INTEGER:
UCD-SNMP-MIB::ucdavis.5000.2.1.2.10.103.101.116.119.105.110.105.110.102. = STRING: "C:/test/test.ba
UCD-SNMP-MIB::ucdavis.5000.2.1.3.10.103.101.116.119.105.110.105.110.102. = ""
UCD-SNMP-MIB::ucdavis.5000.2.1.4.10.103.101.116.119.105.110.105.110.102. = ""
UCD-SNMP-MIB::ucdavis.5000.2.1.5.10.103.101.116.119.105.110.105.110.102. = INTEGER:
UCD-SNMP-MIB::ucdavis.5000.2.1.6.10.103.101.116.119.105.110.105.110.102. = INTEGER:
UCD-SNMP-MIB::ucdavis.5000.2.1.7.10.103.101.116.119.105.110.105.110.102. = INTEGER:
UCD-SNMP-MIB::ucdavis.5000.2.1.20.10.103.101.116.119.105.110.105.110.102. = INTEGER:
UCD-SNMP-MIB::ucdavis.5000.2.1.21.10.103.101.116.119.105.110.105.110.102. = INTEGER:
UCD-SNMP-MIB::ucdavis.5000.3.1.1.10.103.101.116.119.105.110.105.110.102.111 = STRING: "test123456"
UCD-SNMP-MIB::ucdavis.5000.3.1.2.10.103.101.116.119.105.110.105.110.102. = STRING: "test123456"
UCD-SNMP-MIB::ucdavis.5000.3.1.3.10.103.101.116.119.105.110.105.110.102. = INTEGER:
UCD-SNMP-MIB::ucdavis.5000.3.1.4.10.103.101.116.119.105.110.105.110.102. = INTEGER:
UCD-SNMP-MIB::ucdavis.5000.4.1.2.10.103.101.116.119.105.110.105.110.102.111.1 = STRING: "test123456"
根据回显内容,修改oid,在原OID后添加上方标红ID,重新获取内容:
D:\python>snmpwalk -v 2c -c public 127.0.0.1 .1.3.6.1.4.1.2021.5000.3.1.1.10.103.101.116.119.105.110.105.110.102.111
UCD-SNMP-MIB::ucdavis.5000.3.1.1.10.103.101.116.119.105.110.105.110.102. = STRING: "test123456" D:\python>
直接获取到所需内容行,接下来就是解析改行内容,再此之前,发现如果获取内容包含中文时,回显内容为“HEX-STRING:”,示例:
D:\python>snmpwalk -v 2c -c public 127.0.0.1 .1.3.6.1.4.1.2021.5000.3.1.1.10.103.101.116.119.105.110.105.110.102.111
UCD-SNMP-MIB::ucdavis.5000.3.1.1.10.103.101.116.119.105.110.105.110.102. = Hex-STRING: E6 B5 8B E8 AF D:\python>
所以,我们需要对回显结果进行判断后解析,python脚本为:
# coding=utf-8
import re
import os,sys
import time
import platform if 'Windows' == platform.system():
hosts = ['127.0.0.1']
else:
# 在虚拟机运行时则查看本地
hosts = ['127.0.0.1'] def snmpWalk(host, oid):
result = os.popen('snmpwalk -v 2c -c public ' + host + ' ' + oid).read()
return result #snmpwalk -v 2c -c public 127.0.0.1 .1.3.6.1.4.1.2021.5000
#处理回显结果system
def getSystem(host):
system = snmpWalk(host, '.1.3.6.1.4.1.2021.5000.3.1.2.10.103.101.116.119.105.110.105.110.102.111')
if system.find('Hex-STRING:') > 0:
system = "".join(system.split('Hex-STRING:')[1:])
system = "".join(system.split('\n'))
system = "".join(system.split(' '))
system = system.decode("hex") else:
system = "".join(system.split('STRING: \"')[1:])
system = system[0:len(system)-2]
return system def main():
for host in hosts: print('=' * 10 + host + '=' * 10)
print(u"测试信息")
system = getSystem(host)
print system
my_file = 'C:/test/snmpTestinfo'
print ("信息存储到文件: %s"%(my_file)).decode('utf-8').encode('gbk')
if os.path.exists(my_file):
os.remove(my_file)
f = open(my_file, 'a+')
f.write(str(system))
f.close() if __name__ == '__main__':
main()
查看存储文件内容,支持各类文件。
python解析处理snmp回显----snmp的更多相关文章
- python接收字符并回显
# -*- coding: utf-8 -* import serial import time # 打开串口 ser = serial.Serial("/dev/ttyAMA0" ...
- Python网络编程——编写一个简单的回显客户端/服务器应用
今天将python中socket模块的基本API学习完后,照着书上的实例编写一个套接字服务器和客户端.采用python3.5版本,在注释中会标明python2和python3的不同之处. 1.代码 ( ...
- EasyUI加zTree使用解析 easyui修改操作的表单回显方法 验证框提交表单前验证 datagrid的load方法
带参提交一次查询,从服务器加载新数据.这是一个神奇的方法 $('#dg').datagrid('load',{ code: '01', name: 'name01' }); easyui修改操作的回显 ...
- Android 手机卫士--获取联系人信息并显示与回显
前面的文章已经实现相关的布局,本文接着进行相关的功能实现 本文地址:http://www.cnblogs.com/wuyudong/p/5951794.html,转载请注明出处. 读取系统联系人 当点 ...
- 【Java EE 学习 73】【数据采集系统第五天】【参与调查】【导航处理】【答案回显】【保存答案】
一.参与调查的流程 单击导航栏上的“参与调查”按钮->EntrySurveyAction做出相应,找到所有的Survey对象并转发到显示所有survey对象的页面上供用户选择->用户单击其 ...
- 使用Python解析JSON数据的基本方法
这篇文章主要介绍了使用Python解析JSON数据的基本方法,是Python入门学习中的基础知识,需要的朋友可以参考下: ----------------------------------- ...
- SpringMVC框架下数据的增删改查,数据类型转换,数据格式化,数据校验,错误输入的消息回显
在eclipse中javaEE环境下: 这儿并没有连接数据库,而是将数据存放在map集合中: 将各种架包导入lib下... web.xml文件配置为 <?xml version="1. ...
- SpringMVC第五篇【方法返回值、数据回显、idea下配置虚拟目录、文件上传】
Controller方法返回值 Controller方法的返回值其实就几种类型,我们来总结一下-. void String ModelAndView redirect重定向 forward转发 数据回 ...
- JSP第四篇【EL表达式介绍、获取各类数据、11个内置对象、执行运算、回显数据、自定义函数、fn方法库】
什么是EL表达式? 表达式语言(Expression Language,EL),EL表达式是用"${}"括起来的脚本,用来更方便的读取对象! EL表达式主要用来读取数据,进行内容的 ...
随机推荐
- 搭建Fabric网络(三)artifacts是怎么生成的:cryptogen和configtxgen
在first-network里,./byfn.sh generate可以生成artifacts文件. generate参数其实是使用了cryptogen和configtxgen这两个工具,这两个工具分 ...
- IFrame跨域访问&&IFrame跨域访问自定义高度
1.IFrame跨域访问: http://blog.csdn.net/fdipzone/article/details/17619673 2.IFrame跨域访问自定义高度: 由于JS禁止跨域访问,如 ...
- CentOS7 启动中文输入法
CentOS 系统中是带有中文输入法的(智能拼音),启动方式如下: Applications --> System Tools --> Setting --> Region &am ...
- python模块:xml
"""Core XML support for Python. This package contains four sub-packages: dom -- The W ...
- 小程序json字符串转为对象
小程序里json字符串转为对象使用JSON.parse()方法转变无效, 看报错提示有单引号“ ' ” 因为单引号而无效, 将单引号全改双引号即可. 报错如下: VM11050:1 thirdScri ...
- Linux下设置快捷键
以设置终端为例,进入Settings>>Keyboard>>Custom Shortcuts,点左下脚的+号,Name栏填入Treminal,command栏填入gnome-t ...
- IPC,Hz(Hertz) and Clock Speed
How do we measure a CPU's work? Whether it's fast or not depends on three factors: IPC, Hz, Clock sp ...
- Alpha冲刺 - (8/10)
Part.1 开篇 队名:彳艮彳亍团队 组长博客:戳我进入 作业博客:班级博客本次作业的链接 Part.2 成员汇报 组员1(组长)柯奇豪 过去两天完成了哪些任务 进一步优化代码,结合自己负责的部分修 ...
- linux命令_文件目录操作命令
# linux命令--文件和目录操作命令 pwd "print working directory" 打印工作目录的绝对路径 范例: 在bash命令行显示当前用户的完整路径 系统B ...
- KeepAlived+Nginx 安装
yum install -y gcc gcc-c++ openssl openssl-devel 目前keepalived最新版本下载:[root@rhel ~]#wget -c http://www ...