Добрый день. Помогите пожалуйста перевести данные в таблице в читаемый вид типа MAC-адрес. Беру данные из этого OID-a .1.3.6.1.2.1.4.22.1.2 и собственно получается таблица с не читаемыми адресами :( Как показано на прикреплённом принт скрине.
Можно сделать transformation script для таблицы и использовать такую функцию для конвертации MAC адреса:
sub ConvertMAC(str)
{
mac = "";
l = length(str);
for(i = 0; i < l; i++)
{
b = right(d2x(ord(substr(str, i + 1, 1))), 2, "0");
if (i > 0)
mac .= ":";
mac .= b;
}
return mac;
}
Спасибо Виктор, скрипт заработал но к сожалению некорректно выдаёт MAC адреса.Может быть я что-то неправильно собрал, у меня получился вот такой скрипт трансформации:
colIndex = $1->getColumnIndex("MacAddress");
for(row = 0; row < $1->rowCount; row++)
{
value = $1->get(row, colIndex);
mac = "";
l = length(value);
for(i = 0; i < l; i++)
{
b = right(d2x(ord(substr(value, i + 1, 1))), 2, "0");
if (i > 0)
mac .= ":";
mac .= b;
}
$1->set(row, colIndex, mac);
}
например mac адрес 2C-44-FD-39-BD-C0 он преобразует в 2C-44-4D-39-05-10.
А могли бы прислать тот-же OID полученный nxsnmpget'ом?
Виктор спасибо ещё раз за Вашу помощь . Проверив OID-ы через утилиту netxms получил следующий результат:
C:\Users\NetXMS>C:\NetXMS\bin\nxsnmpget.exe -c public -v 2c 10.55.91.1 .1.3.6.1
.2.1.3.1.1.2.18.1.10.55.91.47
.1.3.6.1.2.1.3.1.1.2.18.1.10.55.91.47 [STRING]: ,D?9?? физически он должен был бы быть 2C-44-FD-39-BD-C0
C:\Users\NetXMS>C:\NetXMS\bin\nxsnmpget.exe -c public -v 2c 10.55.91.1 .1.3.6.1
.2.1.3.1.1.2.18.1.10.55.91.48
.1.3.6.1.2.1.3.1.1.2.18.1.10.55.91.48 [Hex-STRING]: 00 26 73 39 A2 86
С 10.55.91.47 понятно , а вот 10.55.91.48 здесь и в OID браузере результат одинаковый в трансформ скрипте он уже отображается как 3F-26-73-39-5E-20.
В тоже время инструмент " &Info->AR&P cache (SNMP) " отображает правильную таблицу IP Mac и Vlan .
Похоже что к моменту попаданию в transformation script некоторые байты уже могут быть испорчены попыткой перевести полученный OCTET STRING в Unicode строку используя текущий code page. В 2.2.7 мы добавили опцию для колонки в SNMP таблице - "convert value to hexadecimal string" - это должно решить проблему.
Спасибо большое Виктор, будем ждать релиз 2.2.7