and_bomy Posted August 16, 2017 Здравствуйте. При опросе OLT BDCom p3310c на предмет получения МАС адреса определенной ОНУ, столкнулся с не возможность прочтения данных в формате НЕХ(octet)-string. 1. запрос от сервера выглядит так запрос: root@FreeBSD09:~ # snmpwalk -c public -v 2c 10.33.13.18 1.3.6.1.4.1.3320.101.10.4.1.1.15 ответ: SNMPv2-SMI::enterprises.3320.101.10.4.1.1.15 = Hex-STRING: C8 3A 35 B5 D9 C7 2.А вот что показывает The Dude - label(Вид) запрос: [oid("1.3.6.1.4.1.3320.101.10.4.1.1.15")] ответ: Я так понимаю, что Dude, при ответе на запрос, переводит НЕХ-string (C8 3A 35 B5 D9 C7) в ASCII и после выводит на экран. Теперь вопрос к знающим людям. Объясните как правильно составить запрос в Dudе, чтобы получить удобочитаемый ответ. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
default_vlan Posted August 17, 2017 (edited) Я так понимаю, что Dude, при ответе на запрос, переводит НЕХ-string (C8 3A 35 B5 D9 C7) в ASCII и после выводит на экран. Более вероятно, что да. Давно ковырялся с dude, сейчас использую чисто на мониторинг сети. Если я правильно помню, то там есть написание собственных функций. Если напомните где, попробую помочь. Если я правильно понял, то это в конфигурации сервера -> Map -> Device Appearance -> Label. Edited August 17, 2017 by default_vlan Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
and_bomy Posted August 17, 2017 (edited) Да, верно. Map -> Device Appearance -> Label Но вот функций преобразования величин, стандартном Дуде - нет. На С++ было бы просто, а вот как их преобразовать в Dude , я не знаю. p.s. Спасибо что откликнулись, пишите, если от меня надо какие нибудь данные. Edited August 17, 2017 by and_bomy Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
default_vlan Posted August 18, 2017 (edited) Осмелюсь предположить, что такая ситуация происходит потому что данные представлены в НЕХ-string. Как обычно, я предлагаю 3 варианта решения: 1. пересмотреть еще раз snmpwalk по девайсу, может быть эти значения где-то попадаются в string, хотя не факт, но мало ли. 2. играться с функциями [Device.MacAddressesCommaList()][oid("1.3.6.1.4.1.3320.101.10.4.1.1.15")] или [Device.MacLookup()][oid("1.3.6.1.4.1.3320.101.10.4.1.1.15")] или [Device.MacAddressesColumn()][oid("1.3.6.1.4.1.3320.101.10.4.1.1.15")] либо искать описания этих функций. В самом ПО я не нашел объявления сторонних функций. 3. Через костыль. Поднимаем на сервере snmp-server, в настройках сервера указываем скрипт, который будет брать данные по snmp с этого девайса, а представлять как свои, но в другом типе данных. Вроде бы скрипт будет выполняться только при обращении к oid на сервере. Еще есть вариант, слева в вертикальном меню, есть пункт Functions. В функции snmp_name любопытно описана конкатенация 'System Name' и соответствующего OID. Можно попробовать описать свою функцию. Edited August 18, 2017 by default_vlan Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
CoUL Posted December 3, 2018 Проблема легко решаема. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
and_bomy Posted December 18, 2019 (edited) И как? Прошло уже много времени с момента вопроса, но все таки как? Edited December 18, 2019 by and_bomy Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...