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 ...
随机推荐
- cesium教程9-加载倾斜摄影并解决高度问题
无人机航拍的倾斜摄影,用照片和视频处理生成三维模型,一般照片都带有坐标信息,所以一般都能定位的比较准确,但是经常会出现高度偏差,这个时候就需要特殊处理了. 今天航拍建模的效果如下: 这个建模没有裁剪, ...
- C 语言编程 — 函数
目录 文章目录 目录 前文列表 函数 函数的声明 函数的定义 函数的形参与实参 值传递 引用传递 可变长形参列表 函数的调用 函数的指针 回调函数 递归函数 数的阶乘 斐波那契数列 构造函数(Cons ...
- Netflow/IPFIX 流量收集与分析
目录 文章目录 目录 Netflow(网络数据流检测协议) IPFIX(网络流量监测) IPFIX 组网架构 IPFIX 应用场景 Usage-based Accounting(基于使用流量的计费) ...
- Excel功能学习
字符串和单元格内容拼接函数CONCATENATE a@马踏星空:=CONCATENATE(D2,E2,F2)拼接指定单元格内字符串,无分隔符 a@马踏星空:=CONCATENATE(I4," ...
- 一个与 WSL2 建立远程的简单方法
前言 众所周知,windows 会通过虚拟交换机给本机和 wsl2(Linux 子系统)分别分配 ip.于是本机重启或重启 wsl 服务的时候会重新分配 ip.之前所作的端口转发,监听之类的都会失效. ...
- Android 12(S) MultiMedia Learning(四)MediaPlayerService
getMediaPlayerService方法获取到的是media.player服务 IMediaDeathNotifier::getMediaPlayerService() { // ...... ...
- no implicit conversion of nil into String
一.Cocoapod 执行pod install命令时报错 [!] An error occurred while processing the post-install hook of the Po ...
- FLV 分析脚本
一.需求 通过脚本,可以检查本地flv文件格式是否正确,可以打印每个Tag中的二进制内容 二.效果 可以看到VideoTag中开始处增加了一段SEI数据,并且可以看到部分字段,gameid.time. ...
- 7.17考试总结(NOIP模拟18)[导弹袭击·炼金术士的疑惑·老司机的狂欢]
问灵十三载,等一不归人. 前言 这回考试全靠 T2 了,别的基本上没分(菜) 总感觉最近进度有亿点快,每天都在补坑,每天都在留坑.... T1 导弹袭击 解题思路 因为这个题的两种长度是不一定的,因此 ...
- 16位简单ASM题的记录——[HGAME 2022 week1]easyasm
第一次遇见16位,和纯看汇编的题目,记录一下 DIE 16位,IDA用32位或者64位都可以打开 IDA 主要汇编部分 seg003:0000 ; =============== S U B R O ...