Снимаю показания счетчиков трафика с железяк.
Проблема начинается, когда нужно снять показания с гигабитного порта, с 64 битного счетчика, используя 2ю версию SNMP.
var
snmp : tsnmpsend;
begin
snmp := tsnmpsend.Create;
try
memo3.Lines.Clear;
snmp.Query.Clear;
snmp.Query.Version := 2;
snmp.Query.Community:='public';
snmp.TargetHost := '192.168.1.6';
snmp.Query.PDUType := PDUGetRequest;
snmp.Query.MIBAdd('1.3.6.1.2.1.31.1.1.1.6.5','',ASN1_NULL);
if snmp.SendRequest then
begin
memo3.Lines.Add(snmp.Reply.MIBGet('1.3.6.1.2.1.31.1.1.1.6.5'));
memo3.Lines.Add(asndump(snmp.Reply.EncodeBuf));
end;
finally
snmp.Free;
end;
Если использую стандартные 32-битные счетчики (вроде 1.3.6.1.2.1.2.2.1.10), то все хорошо, но если 64 битные (1.3.6.1.2.1.31.1.1.1.6) то получаю вот такие значения:
~P‚F\
«…kê
¬D8ã
çv
Хотя там должно быть значение похожее на это: 138884310018294
Оиды брал отсюда:
http://knowledgebase.solarwinds.com/kb/questions/1196/
От всех 64-битных, приходят кракозябры, а от 32 нет.
Причем, если снифать трафик, то видно что отправлено правильное значение.
Подскажите где ошибка, что делаю не так.
Возможно есть способ расшифровать кракозябру, и получить нормальное значение?