обработка в цикле переменной через bin2nex

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Vlad5503
сержант
Сообщения: 226
Зарегистрирован: 2010-03-25 5:41:41

обработка в цикле переменной через bin2nex

Непрочитанное сообщение Vlad5503 » 2018-11-27 12:22:29

Серийный терминала по описанию можно конвертировать командой:

Код: Выделить всё

$str = bin2hex("HWTC `U#");
echo($str);
Т.е. должно из STRING: "HWTC `U#" получить 4857544309605523.

В скрипте на php есть цикл опроса порта на получение серийных номеров. Вот эта часть:

Код: Выделить всё

$rx1 = snmpwalk($ip, $ro, "1.3.6.1.4.1.2011.6.128.1.1.2.43.1.3.$pon"); 	#получение массива
for ($i=0; $i<count($rx1); $i++) {					#создание цикла для опроса массива
    $rx = explode('Hex-STRING: ', $rx1[$i]);				#вырезаем из строки значение "Hex-STRING: "
    $rx2 = implode('', $rx);						#соеденим символы что остались.
    $fp = fopen ("id.txt", "a");					#откроем файл для записи
    fwrite($fp, "$rx2\n");						#запишем в файл
    fclose($fp);							#акроем файл
    echo "<br>"."$rx2";							#выведем переменные из массива на экран
}
Вот по этому скрипту если серийник в терминале прописан как шестнадцатеричное представление то и в файл из полученного массива пишутся построчно серийники и на экран(браузер) выводятся.
Вот пробую в этот цикл встроить команду bin2hex... и не нашел рабочего варианта...
Может у кого есть идея... ?
Последний раз редактировалось Alex Keda 2018-12-01 23:06:17, всего редактировалось 1 раз.
Причина: Товарищщи! Цените чужое время, юзайте кнопочку [code]...

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Vlad5503
сержант
Сообщения: 226
Зарегистрирован: 2010-03-25 5:41:41

обработка в цикле переменной через bin2nex

Непрочитанное сообщение Vlad5503 » 2018-11-28 6:11:55

Какие варианты я пробовал..
1)

Код: Выделить всё

$rx1 = snmpwalk($ip, $ro, "1.3.6.1.4.1.2011.6.128.1.1.2.43.1.3.$pon");
for ($i=0; $i<count($rx1); $i++) {
    $rx = explode('Hex-STRING: ', $rx1[$i]);
    $rx2 = implode('', $rx);
    if ($rx2 < 9) {
    $rx3 = bin2nex("$rx2");
    echo "<br>"."Опс- $rx3";
    }
    $fp = fopen ("id.txt", "a");
    fwrite($fp, "$rx2\n");
    fclose($fp);
    echo "<br>"."$rx2";
}
Этот вариант доходит до переменной из массива содержащая менее 9 знаков, как например это - HWTC `U#, и прекращает выводить на экран сообщения. В логе появляется это:

Код: Выделить всё

PHP Fatal error:  Uncaught Error: Call to undefined function bin2nex() in fx.php:176\nStack trace:\n#0 {main}\n  thrown in fx.php on line 176
2)

Код: Выделить всё

$rx1 = snmpwalk($ip, $ro, "1.3.6.1.4.1.2011.6.128.1.1.2.43.1.3.$pon");
for ($i=0; $i<count($rx1); $i++) {
    $rx = explode('Hex-STRING: ', $rx1[$i]);
    $rx2 = implode('', $rx);
    if ($rx2 < 9) {echo bin2nex("$rx2");}
    $fp = fopen ("id.txt", "a");
    fwrite($fp, "$rx2\n");
    fclose($fp);
    echo "<br>"."$rx2";
}
Этот вариант на экран выводит также как в.1. В логе тоже самое как и по в.1.

По логу мол нет встроенной функции Bin2nex? Странно...
Какие варианты ещё есть...?

Vlad5503
сержант
Сообщения: 226
Зарегистрирован: 2010-03-25 5:41:41

обработка в цикле переменной через bin2nex

Непрочитанное сообщение Vlad5503 » 2018-11-29 6:30:00

Уржаться можно )))
Конечно не сработает...
Ведь bin2hex не равно bin2nex...
Заработал скрипт.

Vlad5503
сержант
Сообщения: 226
Зарегистрирован: 2010-03-25 5:41:41

обработка в цикле переменной через bin2nex

Непрочитанное сообщение Vlad5503 » 2018-11-29 6:34:43

Итого скрипт стал такой:

Код: Выделить всё

$rx1 = snmpwalk($ip, $ro, "1.3.6.1.4.1.2011.6.128.1.1.2.43.1.3.$pon");
for ($i=0; $i<count($rx1); $i++) {
    $rx = explode('Hex-STRING: ', $rx1[$i]);
    $rx2 = implode('', $rx);
    $rx2 = explode(' ', $rx2);
    $rx2 = implode('', $rx2);
    if ($rx2 < 9) {
    $rx2 = explode('STRING:', $rx2);
    $rx2 = implode('', $rx2);
    $rx2 = explode('"', $rx2);
    $rx2 = implode('', $rx2);
    $rx2 = bin2hex($rx2);
    }
    $fp = fopen ("id.txt", "a");
    fwrite($fp, "$rx2\n");
    fclose($fp);
    echo "<br>"."$rx2";
}
Выдает на страничку список серийников оборудования.
Вопрос решен.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

обработка в цикле переменной через bin2nex

Непрочитанное сообщение Alex Keda » 2018-12-01 23:07:22

решоточка штоле не нравится...
Убей их всех! Бог потом рассортирует...

Vlad5503
сержант
Сообщения: 226
Зарегистрирован: 2010-03-25 5:41:41

обработка в цикле переменной через bin2nex

Непрочитанное сообщение Vlad5503 » 2018-12-03 6:14:09

нее, сама команда
bin2hex не равно bin2nex