Как запрограммировать http-туннель

Я в основном хочу захватить все пакеты в выбранном порту и передать их через HTTP. Как лучше всего это сделать? Следует ли мне использовать для этого программу захвата пакетов, такую ​​как SharpPcap?

РЕДАКТИРОВАТЬ: я хочу разрешить 2 компьютерам, которые находятся в защищенных сетях, подключаться друг к другу. Для этого мне нужно написать клиентскую программу и серверную программу. Таким образом, client1 будет отправлять пакеты на сервер через HTTP, а сервер отправит их на client2 через HTTP.


person geniaz1    schedule 25.02.2013    source источник


Ответы (2)


Ваш вопрос немного расплывчатый, что вы имеете в виду, говоря о передаче их через HTTP? Перенести их куда и что потом делать?

Взять, к примеру, Tor. Tor настроит для вас локально SOCKS и HTTP-прокси. Пока клиент поддерживает один из этих протоколов, вы можете подключиться к прокси. Затем локальный прокси направит запросы по сети Tor на выходной узел, который затем подключится к более широкому миру.

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

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

person Lloyd    schedule 25.02.2013
comment
Основы все те же, CodeProject имеет множество различных примеров, например, это - codeproject.com/Articles/71871/ - person Lloyd; 25.02.2013
comment
Но как вы захватываете пакеты в клиенте? Просто используете TcpListener? Вам больше ничего не нужно? - person geniaz1; 25.02.2013
comment
Вам не нужно захватывать пакеты. Если ваш клиент (веб-браузер или что-то еще) поддерживает SOCKS, вы можете настроить его для маршрутизации через него. Это совершенно другая игра с мячом - туннелирование на уровне пакетов, и я думаю, что сейчас это выходит за рамки вашего набора навыков. Сначала заставьте работать прокси SOCKS / HTTP. - person Lloyd; 25.02.2013
comment
А если он не поддерживает НОСКИ? Это значит, что мне нужно выполнить захват пакетов? - person geniaz1; 25.02.2013
comment
Если он изначально не поддерживает проксирование, тогда да, но вы просите с этим проблем. - person Lloyd; 25.02.2013
comment
Почему? Это слишком сложно? А как насчет этого кода? http://www.nocrew.org/software/httptunnel.html - person geniaz1; 25.02.2013

Я просто искал в Google "пример HTTP-туннелирования" и нашел следующие ссылки. Может они тебе помогут.

Ссылка 1

Ссылка 2

person Tomtom    schedule 25.02.2013