SNMPpp, работа с counter64
В общем, мне нужно получить кол-во пройденного трафика по OID'у 1.3.6.1.2.1.31.1.1.1.6.x, где х - номер порта. Но, тип данных который установлен у него - counter64. Я использую библиотеку для работы с SNMP - SNMPpp. Counter32 получаю без проблем, 64 - с траблами.
Проблема в том, что значения которые приходят - они различаются. Получая значение с помощью snmpget, я условно получаю одно число, в своем - другое.
Ответы (1 шт):
Автор решения: kavo tavo
→ Ссылка
В общем, в структуре counter64 есть 2 поля, low и high. Нам нужно поле high умножить на 2^32 и прибавить low.
uint64_t number = counter64->high * pow(2,32) + counter64->low;
И мы получаем наше значение :)