开发者

How to create a generic network proxy using Python or C++?

开发者 https://www.devze.com 2023-04-03 13:17 出处:网络
I have an application which communicates over the local area network. However, I want to instead make it communicate over the internet. To do this I propose making an intermediate program which will r

I have an application which communicates over the local area network. However, I want to instead make it communicate over the internet. To do this I propose making an intermediate program which will read the network traffic generated from the application on one computer and send it to the application on another computer.

This involves:

  1. Reading the outgoing network traffic of the application
  2. Sending a copy of this traffic over the internet to another computer
  3. Giving this copy to the application on the other computer

Instead of this:

Application on computer A <-LAN-> Application on computer B

I want to achieve this:

Application on A <--> My Program on A <-INTERNET-> My program on B <--> Application on B

I can accomplish (2), but with (1) and (3) my problem is that I have very little experience with networking and I do not know where to start. I can program in python but would be willing to use c++ to accomplish this.

(Hamachi does not work for this application, I do not know why.)

In response to comments

I do not intend to manipulate any data unless it is necessary to ma开发者_如何学运维ke the connection work. I have no control over the application itself and it does not provide me with any methods to configure the connection with the exception of a port number.

TCP and UDP are both used on the port 6112. The IP addresses used are first 255.255.255.255 for a generic broadcast used to discover other applications on the LAN (with UDP), then a TCP connection is established.


The term you are missing in your original question is proxy. You specifically need a transparent forwarding proxy.

Here is a link to some source code in Python that will get you started with writing a proxy.

That said, if you search around you should be able to find a transparent forwarding proxy that you don't have to write yourself.

If you want to do this the most robust way, you can do it in hardware and setup a managed router/switch/firewall to route things to where ever you need without having to write anything.


Why re-engineer the wheel? Why not just use OpenVPN, n2n or vtun etc etc.

0

精彩评论

暂无评论...
验证码 换一张
取 消