кодировка — PHP SNMP Real Walk возвращает плохие символы

Я прочитал через PHP функцию snmp2_real_walk значение OID ‘.1.3.6.1.2.1.17.4.3.1.1’ для получения MAC-адреса от устройства коммутатора Cisco. Проблема в том, что некоторые результаты (случайным образом из 50 результатов из 200) возвращают плохие символы (но я обнаружил ошибку, если читаю только MAC-адреса). Т.е .:

правильные примеры вывода:

  • [Dot1dTpFdbAddres] => 30 05 5C 38 A7 8C
  • [Dot1dTpFdbAddres] => C0 7B BC 0E 56 18

неправильные примеры вывода:

  • [Dot1dTpFdbAddres] =>, v ? .B (HEX DUMP: 0: 20 2c 76 8a 3f 2e 62 20 [, v.?. B])
  • [Dot1dTpFdbAddres] =>, A8 7 (HEX DUMP: 0: 20 2c 41 38 82 d9 37 20 [, A8..7])
  • [Dot1dTpFdbAddres] => xE\ (HEX DUMP: 0: 20 78 45 c4 2a 5c 20 d9 20 [xE.\. ])

Если я попытаюсь прочитать OID ‘.1.3.6.1.2.1.17.4.3.1.1’ из программы Getif, я получу правильные результаты.

Я не могу найти решение этой проблемы — не могли бы вы мне помочь?

Проверенное решение, которое не удалось

  • PHP — изменение snmp2_real_walk от snmprealwalk
  • Изменена кодировка файлов (UTF8, ANSI)
  • SNMP больше времени ожидания и попробуйте добавить функцию PHP sleep ()
  • Директива PHP: snmp_set_oid_numeric_print (1)
  • Директива PHP: snmp_set_quick_print (true)
  • Директива PHP: snmp_set_enum_print (true)
  • Директива PHP: snmp_set_valueretrieval (SNMP_VALUE_LIBRARY и SNMP_VALUE_PLAIN)

О сервере:

  • Версия PHP 5.5.3
  • Apache / 2.4.4 (Win32) OpenSSL / 1.0.1e PHP / 5.5.3
  • ЛАМПЫ эквивалентны WAMP (тоже ошибка)

Новая важная информация:

Device return randomly none-hex value for hex values, ie.:
[iso.3.6.1.2.1.17.4.3.1.1.92.38.10.129.123.27] => Hex-STRING: 5C 26 0A 81 7B 1B
[iso.3.6.1.2.1.17.4.3.1.1.120.69.196.42.25.241] => Hex-STRING: 78 45 C4 2A 19 F1
[iso.3.6.1.2.1.17.4.3.1.1.120.69.196.42.27.169] => Hex-STRING: 78 45 C4 2A 1B A9
[iso.3.6.1.2.1.17.4.3.1.1.120.69.196.42.34.45] => STRING: "xE�*\"-"[iso.3.6.1.2.1.17.4.3.1.1.120.172.192.142.199.214] => STRING: "x�����"[iso.3.6.1.2.1.17.4.3.1.1.124.30.179.254.9.201] => Hex-STRING: 7C 1E B3 FE 09 C9

Mibs правильно импортируются на сервер Apache, устройства выглядят нормально.

Есть ли способ в PHP, как записать для snmp2_real_walk () все возвращаемые значения как Hex-STRING?

* Подобные проблемы (без результатов):

Спасибо и всего наилучшего,
Petr

0

Решение

Используйте следующую конфигурацию:

snmp_set_valueretrieval(SNMP_VALUE_LIBRARY);
snmp_set_quick_print(1);
snmp_set_enum_print(0);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]