如何使用Python或C ++创建通用网络代理?

时间:2011-09-07 17:23:43

标签: c++ python proxy network-programming

我有一个通过局域网进行通信的应用程序。但是,我想通过互联网进行沟通。为此,我建议制作一个中间程序,它将在一台计算机上读取应用程序生成的网络流量,并将其发送到另一台计算机上的应用程序。

这涉及:

  1. 读取应用程序的传出网络流量
  2. 通过互联网将此流量的副本发送到另一台计算机
  3. 将此副本提供给另一台计算机上的应用程序
  4. 而不是:

    在计算机A< -LAN->上的应用程序在计算机B上的应用

    我想实现这个目标:

    在A< - >上的应用我的A< -INTERNET->程序我在B< - >上的节目申请B

    我可以完成(2),但是(1)和(3)我的问题是我对网络的经验很少,我不知道从哪里开始。我可以在python中编程,但愿意使用c ++来实现这一点。

    (Hamachi不适合这个应用程序,我不知道为什么。)

    回应评论

    除非必须使连接起作用,否则我不打算操纵任何数据。我无法控制应用程序本身,除了端口号之外,它没有为我提供配置连接的任何方法。

    TCP和UDP都在端口6112上使用。对于用于发现LAN上其他应用程序(使用UDP)的通用广播,使用的IP地址首先是255.255.255.255,然后建立TCP连接。

2 个答案:

答案 0 :(得分:1)

原始问题中缺少的术语是proxy。您特别需要transparent forwarding proxy

这是Python中的link to some source code,它将帮助您开始编写代理。

那就是说,如果你在周围搜索,你应该能够找到一个你不必自己写的transparent forwarding proxy

如果您想以最强大的方式执行此操作,您可以在硬件中执行此操作并设置托管路由器/交换机/防火墙,以便将内容路由到您需要的位置,而无需编写任何内容。

答案 1 :(得分:1)

为什么重新设计轮子?为什么不使用OpenVPN,n2n或vtun等等。