Как создать общий сетевой прокси с использованием Python или C ++? - PullRequest
0 голосов
/ 07 сентября 2011

У меня есть приложение, которое общается по локальной сети.Тем не менее, я хочу вместо этого заставить его общаться через Интернет.Для этого я предлагаю создать промежуточную программу, которая будет считывать сетевой трафик, генерируемый приложением на одном компьютере, и отправлять его в приложение на другом компьютере.

Это включает:

  1. Чтение исходящего сетевого трафика приложения
  2. Отправка копии этого трафика через Интернет на другой компьютер
  3. Передача этой копии приложению на другом компьютере

Вместо этого:

Приложение на компьютере A <-LAN-> Приложение на компьютере B

Я хочу добиться этого:

Приложение на A <-> MyПрограмма на A <-INTERNET-> Моя программа на B <-> Заявка на B

Я могу выполнить (2), но с (1) и (3) моя проблема в том, что у меня очень мало опытас сетью и я не знаю с чего начать.Я могу программировать на python, но хотел бы использовать c ++ для этого.

(Hamachi не работает для этого приложения, я не знаю почему.)

В ответ на комментарии

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

TCP и UDP оба используются на порту 6112. Используемые IP-адресавначале 255.255.255.255 для общего широковещания, используемого для обнаружения других приложений в локальной сети (с UDP), затем устанавливается соединение TCP.

Ответы [ 2 ]

1 голос
/ 07 сентября 2011

Зачем заново проектировать колесо?Почему бы просто не использовать OpenVPN, n2n или vtun и т. Д. И т. Д.

1 голос
/ 07 сентября 2011

Термин, который вы пропустили в исходном вопросе, - proxy. Вам конкретно нужен transparent forwarding proxy.

Вот ссылка на некоторый исходный код в Python, который поможет вам начать писать прокси.

Тем не менее, если вы будете искать вокруг, вы сможете найти transparent forwarding proxy, который вам не нужно писать самостоятельно.

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

...