Добрый день уважаемые форумчане!
Нужен прозрачный прокси с фильтрацией для некого приложения сбора статистики. Помогите советом пожалста...
Дано: приложение сбора статистики клиент-сервер, один сервер несколько клиентов.
Соединение клиента с сервером происходит следующим образом ( слушали вайршарком ):
клиент инициирует запрос ping ( ICMP ):
Echo (ping) request id=0x0001, seq=3/768, ttl=128 (reply in 313)
сервер отвечает на запрос ping:
Echo (ping) reply id=0x0001, seq=3/768, ttl=128 (request in 312)
клиент устанавливает TCP соединение:
49158 → 81 [SYN] Seq=0 Win=8192 Len=0 MSS=1460 WS=256 SACK_PERM=1
сервер:
81 → 49158 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1460 WS=256 SACK_PERM=1
далее клиент запрашивает по HTTP: GET /workdirectory/put/AC6F-C729-4D61-837B-63A507AF/ HTTP/1.1
получает ответ переключения протокола на websocket:
497 HTTP/1.1 101 Switching Protocols
далее клиент отправляет по websocket строки длинной ~50 байт:
110 WebSocket Text [FIN] [MASKED]
…
….
полезная нагрузка:
Line-based text data (1 lines)
{«ID»:«X60»,«TYPE»:10,«VALUE»:«400910»,«ACLOSE»:0}
получает от сервера всегда одинаковый ответ:
99 WebSocket Text [FIN]
…
…
полезная нагрузка
Line-based text data (1 lines)
{«XDX»:«DDD»,«KEY»:«67565697294466565»}
Задача: создать прозрачный прокси, проверяющий websocket ответы
от сервера на предмет точного соответствия полезной нагрузки заданной:
( «XDX»:«DDD»,«KEY»:«67565697294466565» )
В случае несовпадения рвать соединение или заменять на заданную )
Вопрос: можно ли с помощью готового софта реализовать такую задачу ?