Мне нужно перехватить и изменить поток данных.Поток состоит из команд фиксированной ширины.Каждая команда представляет собой новую строку, и в документации говорится, что каждая команда начинается и заканчивается парой STX
/ ETX
(начало и конец текста)
Отправляющая система использует последовательный порт, но подвергается атакена устройство iPocket, которое связывается по IP с нашей УАТС.Из того, что я могу сказать, это просто преобразование серийного номера в telnet, что, как мы надеемся, должно сделать все довольно просто.
Строка, которую мне нужно искать, начинается с NAM
.Структура выглядит примерно так:
STX NAM EXT# LASTNAME,FIRSTNAME ETX
Мне нужно заменить ,FIRSTNAME
пробелом, чтобы он не менял длину команды.
IМы пытались выполнить следующее, и хотя он пропускает данные из конца в конец в обоих направлениях, как требуется, и удаляет необходимые данные, он не поддерживает длину команды.
ipocket <-> nc -kl 1100 | sed 's/,[^,]*/ /g' | nc target_ip target_port <-> PBX
Я буду использовать linux box для этой задачи.Я достаточно уверен, что это можно сделать довольно просто на Perl или Python, но я не знаю, с чего начать.Будем очень благодарны любой помощи!