pysnmp 获取设备 mib
snmpwalk 指令获取设备 mib
snmpwalk -v 1 -c public ip .1 > ip.mibs
pysnmp 获取设备 mib
安装环境
pip3 install pysnmp
pip3 install pysnmp-mibs
代码(snmpwalk.py):
from pysnmp.entity.rfc3413.oneliner import cmdgen
import sys
#debug模式,可以观察mib文件是如何寻找的
#from pysnmp import debug
#debug.setLogger(debug.Debug('mibbuild'))
arg_len = len(sys.argv)
if arg_len == 2:
ip = sys.argv[1]
else:
print("Usage:\n python3 snmpwalk.py [ip]]")
sys.exit(0)
cmdGen = cmdgen.CommandGenerator()
errorIndication, errorStatus, errorIndex, varBindTable = cmdGen.nextCmd(
cmdgen.CommunityData('public'),
cmdgen.UdpTransportTarget((ip, 161)),
cmdgen.MibVariable('IF-MIB', '').loadMibs(),
lexicographicMode=True, maxRows=100000,
ignoreNonIncreasingOid=True,
lookupNames=True, lookupValues=True
)
if errorIndication:
print(errorIndication)
else:
if errorStatus:
print('%s at %s' % (
errorStatus.prettyPrint(),
errorIndex and varBindTable[-1][int(errorIndex)-1] or '?'
)
)
else:
with open('{0}.mib'.format(ip),'w') as f:
for varBindTableRow in varBindTable:
for name, val in varBindTableRow:
mib_text = '%s = %s' % (name.prettyPrint(), val.prettyPrint())
print(mib_text)
f.write(mib_text+'\n')
运行:
python3 snmpwalk.py 192.168.1.1
打包
使用pyinstaller打包后提示找不到IF-MIB.py
需要在snmpwalk.py同级目录下新建 snmpwalk.spec
# -*- mode: python ; coding: utf-8 -*-
from PyInstaller.utils.hooks import collect_data_files
from PyInstaller.utils.hooks import collect_submodules
block_cipher = None
a = Analysis(['snmpwalk.py'],
pathex=['/usr/local/lib/python3.5/dist-packages/', '/home/brian/test/snmpwalk'],
binaries=[],
datas=[],
hiddenimports=collect_submodules('pysmi')+\
collect_submodules('pysnmp_mibs')+\
collect_submodules('pysnmp'),
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
x=Tree('/usr/local/lib/python3.5/dist-packages/pysnmp/smi/mibs',prefix='pysnmp/smi/mibs',excludes='.py')
y=Tree('/usr/local/lib/python3.5/dist-packages/pysmi',prefix='pysmi',excludes='.py')
z=Tree('/usr/local/lib/python3.5/dist-packages/pysnmp_mibs',prefix='pysnmp_mibs',excludes='.py')
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[],
x,y,z,
name='snmpwalk',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True )
之后执行:
pyinstaller snmpwalk.spec
参考
[1]. 如何获取pysnmp以使用pysnmp-mib进行友好输出?
[2]. pysnmp.smi.error.MibNotFoundError
[3]. 无法让 pysnmp 与 pyinstaller 一起使用(Can't get pysnmp to work with pyinstaller)
pysnmp 获取设备 mib的更多相关文章
- 获取设备mac地址和md5加密
SGMSettingConfig.h #import <Foundation/Foundation.h> @interface SGMSettingConfig : NSObject{ N ...
- iOS 获取设备信息,mac地址,IP地址,设备名称
#import "DeviceInfoUtil.h" #import "GlobleData.h" #import "sys/utsname.h&qu ...
- iOS 获取设备唯一标示符的方法
在开发中会遇到应用需要记录设备标示,即使应用卸载后再安装也可重新识别的情况,在这写一种实现方式--读取设备的UUID(Universally Unique Identifier)并通过KeyChain ...
- ios获取设备信息总结
1.获取设备的信息 UIDevice *device = [[UIDevice alloc] int]; NSString *name = device.name; //获取设备所有者的名 ...
- 获取设备UDID、IMEI、ICCID、序列号、Mac地址等信息
在iOS7之前, 可以方便的使用 [[UIDevice currentDevice] uniqueIdentifier] 来获取设备的UDID,但是在iOS7之后这个方法不再适用. 你可以用[[UID ...
- 微信蓝牙设备开发教程之获取设备deviceid和二维码(3)
文章转载地址 http://www.vxzsk.com/87.html 设备授权 调用 设备授权新接口 ,获取deviceid和二维码,然后利用获取到的deviceid更新设备属性(如mac地址, ...
- iOS获取设备唯一标识的8种方法
8种iOS获取设备唯一标识的方法,希望对大家有用. UDID UDID(Unique Device Identifier),iOS 设备的唯一识别码,是一个40位十六进制序列(越狱的设备通过某些工具可 ...
- 获取设备的mac地址和IP地址(android6.0以上专用)
/** * 获取设备HardwareAddress地址 * @return */public static String getMachineHardwareAddress(){ Enumeratio ...
- 微信 小程序 drawImage wx.canvasToTempFilePath wx.saveFile 获取设备宽高 尺寸问题
以下问题测试环境为微信开发者0.10.102800,手机端iphone6,如有不对敬谢指出. 根据我的测试,context.drawImage,在开发者工具中并不能画出来,只有预览到手机中显示. wx ...
- 获取设备的mac地址可靠的方法
参考自:http://www.open-open.com/lib/view/open1433406847322.html /** * 获取设备的mac地址 * * @param ac * @param ...
随机推荐
- chgrp chown
chgrp 用来改变文件所属群组,如果要改变的群组不在/etc/group里面,将会报错. chown 用来改变文件的所有者,如果改变的所有者便在/etc/passwd里面,将会报错. 需要注意的是c ...
- 鸿蒙stage模型
app.json5全局的配置文件 icon和label是应用列表的 module.json5模块配置文件 中有一个abilities其中的icon和label才是桌面的图标和名称 日志的话就是hail ...
- Splashtop 支持对 Adobe Creative Cloud 视频应用程序的远程访问
快讯:Splashtop 为 Adobe Creative Cloud 视频和音频产品的用户提供了对其工作站的高性能远程访问,使他们能够在家中工作. 程访问和远程支持解决方案的领导者 Splashto ...
- 经验分享:春招零Offer,5月份还有机会吗?
先说答案:5 月份依然有拿到 Offer 的机会. 5月份春招结束了吗? 对于应届大学生来说(也就是今年暑假毕业的学生),5 月中旬春招就陆续结束了,但是 5 月份会有很多补录的机会. 对于非应届的大 ...
- java学习之旅(day.21)
HTML 初识HTML HTML: Hyper Text Markup Language(超文本标记语言) 超文本包括文字.图片.音频.视频.动画等 W3C标准 W3C :World Wide Web ...
- git使用其它
创建目录 切换到本地新建的dev分支,目录下还是这个目录下的文件.我push一下,指定推送到dev分支,那么dev分支就在远程仓库同步创建,并且文件也是本地这个目录下的文件,一样的. 好像得改个名字才 ...
- sass语法嵌套规则与注释讲解
语法嵌套规则 选择器嵌套 例如有这么一段css,正常CSS的写法 .container{width:1200px; margin: 0 auto;} .container .header{height ...
- rabbitmq添加延时通道时报错
rabbitmq添加延时通道时报错 'x-delayed-type' must be an existing exchange type 解决方案: 我实际用的是x-delayed-type:topi ...
- .net c# 文件分片/断点续传之下载--客户端
断点续传客户端实现主要参考了以下文章: https://blog.csdn.net/binyao02123202/article/details/76599949 客户端实现续传的主要是一下几点 1. ...
- SwiftUI(一)- VStack、HStack、ZStack布局
SwiftUI是什么 懒得写,直接找了一篇博客: 初识 SwiftUI 三种布局 SwiftUI包括三种布局: VStack: 纵向布局,默认居中对齐 HStack: 横向布局,默认居中对齐 ZSta ...