PHP SNMP возвращает странные шестнадцатеричные значения в режиме PLAIN и OBJECT

Я работаю над сценарием php snmp и заметил странную вещь. Когда я установил snmp_set_valueretrieval в SNMP_VALUE_PLAIN или же SNMP_VALUE_OBJECTвыводит некоторые странные символы (иногда китайские буквы). Тем не менее, когда я установил его SNMP_VALUE_LIBRARY все выглядит хорошо. Есть ли способ преобразовать эти выходные данные в читаемые строки? Вот мой код

snmp_set_quick_print(1);
snmp_set_valueretrieval(SNMP_VALUE_PLAIN);

$example = snmpget(BS_IP, 'public', OID);
echo "Example SNMP_VALUE_PLAIN: " . $example . PHP_EOL;

snmp_set_valueretrieval(SNMP_VALUE_LIBRARY);

$example = snmpget(BS_IP, 'public', OID);
echo "Example SNMP_VALUE_LIBRARY: " . $example . PHP_EOL;

snmp_set_valueretrieval(SNMP_VALUE_OBJECT);

$example = snmpget(BS_IP, 'public', OID);
echo "Example SNMP_VALUE_OBJECT: " . $example->value . PHP_EOL;

И вот скриншот вывода:

введите описание изображения здесь

0

Решение

После нескольких часов тестирования я заметил, что результат является двоичным. Итак, после того как я завернул результат с bin2hex Результат функции, наконец, читается.

$example = snmpget(BS_IP, 'public', OID);
echo "Example SNMP_VALUE_PLAIN: " . bin2hex($example) . PHP_EOL;
0

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

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

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