| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Сети > SQL-Proxy |
| Автор: exploys 4.6.2010, 13:13 |
| Необходимо написать что-то наподобии sql-proxy на c++. Т.е. перехватывать и изменять SQL запросы посылаемые от клиента серверу. Т.е. клиент конектиться к моему приложению, которое изменяет запросы и посылает в СУБД. А результат выполенния запроса в неизменном виде возвращает клиенту. Как лучше сделать и может есть какие-то простые примеры таких вот "редиректоров" любых tcip/ip пакетов? В какую сторону копать? |
| Автор: SenkraD 4.6.2010, 13:32 |
| exploys, если клиент знает, что между ним и СУБД есть вы - тоесть оно посылает запросы вам, то всё просто: - получили запрос - отпарсили, если нужно - изменили и(или) что-то добавили - послали запрос на СУБД - получили ответ от CУБД - отослали ответ к клиенту Если же клиент думает, что конектится к СУБД, а тут вы, то - парсим пакет - ищем запрос - все пунктики с первого варианта по поводу готовых "редиректоров", если под конкретную СУБД, то думаю найдёте, а под все сразу вряд ли |
| Автор: exploys 4.6.2010, 14:58 |
| Есть mysql-proxy, но нужно написать более универсальную. А нету вообще просто самых простых исходников редиректоров tcp пакетов? И чтоб держало тысячи подключений. Или книгу с примерами не посоветуете. Добавлено через 7 минут и 5 секунд Да кстати инетересует вариент именно клиент думает, что конектится к СУБД. В основном интересует, как создать такой полностью прозрачный прокси. Хотябы самый простой пример. |
| Автор: exploys 5.6.2010, 23:26 | ||||
| Попробовал сделать порт маппинг через TIdMappedPortTCP. Попробовал перенаправлять трафик из браузера на мой прокси UserGate который висит на порте:8088 На форму кинул Button1 и IdMappedPortTCP1 Обработчик кнопки Код:
Жму кнопку, появляется открытый порт 8087. Браузер настроен на прокси на 8087. Открываю сайты в браузере, сайты открываются, но постоянно эксепшен:
А если пытаюсь маппить трафик с 3307 на 3306, где у меня висит MySQL, то тупо клиент MySQL подвисает. Может там нужны ещё какие-то компоненты? Или кинтье какие-нить простые рабочие исходники плиз. |
| Автор: exploys 8.6.2010, 22:28 |
| Все дело было в Indy10, включая Тибуроновскую. Все решилось переходом на Indy9. |