Добавление заголовка HTTP ко всем исходящим пакетам в Windows? - PullRequest
1 голос
/ 25 октября 2010

Я занимаюсь разработкой приложения для Windows, которое будет находиться в системном трее. Приложение может быть включено / отключено пользователем.

Всякий раз, когда пользователь включает его, ему необходимо прослушивать / прослушивать HTTP-трафик и добавлять определенный заголовок HTTP для всех исходящих пакетов.

Я думаю, что это можно сделать, изменив настройки системы или браузера на localhost: my_port. Однако у этого метода есть несколько недостатков, таких как необходимость реализации прокси-сервера в моем приложении.

Можете ли вы предложить лучший способ сделать это? Мне просто нужно добавить определенный заголовок HTTP для всех исходящих пакетов HTTP.

Я использую Visual C ++ 6.0

Ответы [ 2 ]

2 голосов
/ 25 октября 2010

Самый простой способ сделать это - это то, что вы описываете: настроить браузер для работы через прокси, а затем реализовать его, добавляя / изменяя заголовки по мере необходимости.

Ваша идея о добавлении заголовков HTTP к исходящим "пакетам" неверна. Потому что вы забыли, что протокол HTTP основан на TCP, который является stream . То есть вы не должны выполнять какую-либо независимую обработку для отдельных пакетов. Они должны быть сделаны в контексте связи. (Кроме того, очевидно, что вы хотите сделать это только для протокола HTTP).

На самом деле есть способы сделать это с помощью "сниффинга", что, как кажется, браузеру. Это, однако, очень, очень сложнее в реализации.

Потому что:

  1. Требуется разработка драйвера (со всеми вытекающими последствиями)
  2. Поскольку в вашем конкретном случае вы не можете сделать это для отдельных пакетов - это еще сложнее.

Так что, если у вас есть возможность сказать своему браузеру, чтобы он попал прямо в ваши руки, не углубляясь во внутренности ОС - вам обязательно следует использовать эту возможность.

0 голосов
/ 29 октября 2010

Все будет идти ужасно неправильно, пока вы не узнаете разницу между пакетами, запросами / ответами и потоками.

Вместо этого напишите HTTP-прокси.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...