2010-06-03 4 views
0

У меня есть программное обеспечение, которое работает как черный ящик, у меня нет доступа к нему. Это программное обеспечение выполняет HTTP-запросы. То, что я хочу сделать, это перехватить эти запросы, переслать их, уловить ответ, сделать что-то с ним, прежде чем передать ответ обратно на программное обеспечение.«Проксирование» HTTP-запросов

Можно ли это сделать? Какой лучший метод?

Благодаря

Edit: запросы являются интернет-общественности из локальной интрасети через шлюз/маршрутизатор. У меня есть root доступ к моей машине. Другая машина может использоваться как промежуточный шлюз.

Редактировать 2: Запросы не шифруются. То, что я на самом деле пытаюсь сделать, - это сэкономить любые запрошенные изображения.

+1

Куда он обращается к HTTP-запросам? У вас есть маршрутизатор перед ним? Сколько у вас контроля над DNS, настройкой прокси и т. Д.? Вы понюхали сетевой трафик, чтобы посмотреть, что он сейчас делает? – barrycarter

+0

@barry - добавлено больше информации к моему OP –

ответ

0

Если сообщение не зашифровано, используйте Ethereal (или любую другую аналогичную программу), чтобы обнюхать связь по проводу.

изменить: поскольку сообщение не зашифровано, вы можете легко это сделать с помощью Ethereal. Вы можете сохранить каждый поток TCP независимо оттуда.

Edit2: Хорошо, вы хотите сделать это автоматически. В этом случае я бы предложил вам посмотреть два инструмента, доступных в Linux под названием tcpflow и tcpreen.

tcpreen создает прокси-сервер, аналогичный тому, что вы хотите между локальным портом и удаленным. Это прокси-сервер TCP, а не прокси-сервер HTTP, поэтому это означает, что вам нужно будет написать инструмент анализа, чтобы изолировать потоки HTTP, содержащие нужные вам изображения (возможно, на основе типа ответа MIME). это не слишком сложная задача, хотя, если вы понимаете, как работает HTTP.

tcpflow похож на tcpreen, за исключением того, что это сниффер вместо прокси. Используйте любой инструмент, который, по вашему мнению, более адаптирован к вашей среде.

+0

Запросы не зашифрованы. То, что я пытаюсь достичь, - это сэкономить все изображения, запрошенные программным обеспечением. Не эфирный называется wirehark в эти дни? Может ли он запускаться не интерактивно/в пакетном режиме? –

+0

@ Рихард. Ах, ты. Ethereal теперь называется wirehark. Извините: старые привычки умирают, я понимаю. И он может сохранить любой поток данных в файл, без проблем. – Stephane

+0

Проблема в том, что я хочу запустить это неинтерактивно, и записать в файл каждое запрошенное изображение –

Смежные вопросы