krb
Сен. 1, 2011 16:30:03
Получаю с устройства по SNMP значение в формате float. snmpwalk выдает следующее
snmpwalk -c public -v 1 127.0.0.1 1.3.6.1.4.1.19707.7.4.2.1.3.2.0
iso.3.6.1.4.1.19707.7.4.2.1.3.2.0 = Opaque: Float: -72.750000
но в python это значение получается в таком виде
(ObjectName('1.3.6.1.4.1.19707.7.4.2.1.3.2.0'), Opaque('\x9fx\x04\xc2\x92\x80\x00'))
Как привести к значению float? Использую python 2.6 + библиотека pysnmp
krb
Сен. 2, 2011 09:52:12
Есть идеи?
Андрей Светлов
Сен. 2, 2011 10:20:42
6 байт в opaque не похожи на float. И тем более на -72.75
krb
Сен. 2, 2011 10:31:54
iso.3.6.1.4.1.19707.7.4.2.1.3.2.0 = Opaque: Float: -71.750000
iso.3.6.1.4.1.19707.7.4.2.1.3.7.0 = Opaque: Float: 23.023399
(ObjectName('1.3.6.1.4.1.19707.7.4.2.1.3.2.0'), Opaque('\x9fx\x04\xc2\x8f\x80\x00'))
(ObjectName('1.3.6.1.4.1.19707.7.4.2.1.3.7.0'), Opaque('\x9fx\x04A\xb8/\xec'))
Тогда я совсем не понимаю на что это похоже.
krb
Сен. 2, 2011 14:28:37
Может в каком-то кодированном виде приходит?
krb
Сен. 2, 2011 15:31:49
решил прямым вызовом snmpwalk из python. Топорно, но работает.