使用pysnmp框架,我可以通过snmp遍历获得一些值。不幸的是
1.3.6.1.21.69.1.5.8.1.2 (DOCS-CABLE-DEVICE-MIB)
我得到了一个奇怪的结果,因为它包含ascii字符,比如BEL
ACK
,所以无法正确地在这里打印
当我做一个报告时,我得到:
OctetString('\x07\xd8\t\x17\x03\x184\x00')
但是输出应该是:
2008-9-23,3:24:52.0
格式称为“日期和时间”。如何将OctetString输出转换为“人类可读”的日期/时间?
Tags:
@保罗·斯卡丁:这是我在网上找到的解决类似问题的最佳答案。即使有了这个答案,我还是花了一点时间来解决我的问题,所以我想发布一个后续的答案,可能会更加清晰。(特别是日期有不同长度选项的问题)。
下面的代码连接到服务器并获取系统时间,然后将其作为字符串输出以演示该方法。
我希望这能帮助其他有类似问题的人尝试处理此类数据。
无耻的插件:Pycopia SNMP和SMI模块正确地处理了这个对象以及其他对象。 Pycopia是从源安装的,如果您尝试,请不要忘记mibs file。
您可以找到格式规范here。
为了解码您的样本数据,您可以使用这个快速而肮脏的一行:
上面的例子远不是完美的,它不考虑大小(这个对象有可变大小),并且缺少时区信息。还要注意,字段7是分秒(0..9),而时间元组[6]是微秒(0<;=x<;1000000);
正确的实现留给读者作为练习。[更新]
8年后,让我们试着修正这个答案(我是懒惰还是什么?)以下内容:
我不确定时区偏移量是否正确,但我没有要测试的样本数据,请随意修改答案或在评论中ping我。
相关问题 更多 >
编程相关推荐