更改程序IP地址

时间:2015-10-07 11:42:36

标签: tcp ip tcpclient

我有一个TCP客户端/服务器应用程序,我需要更改客户端IP地址。如果我打开客户端应用程序,它将与服务器建立连接(在客户端内部定义服务器的IP地址 - .exe文件)。有什么方法可以定义我想要连接的IP地址?我用端口转发程序做了一次,但是它有点复杂,用户也需要使用这个程序,如果他们想连接的话。也许某种方式客户端获得他连接到正确IP的信息,但他会连接到不同的,有些他没有在应用内部定义。

但也许这根本不可能:D。首先对不起我的英语我希望你能理解这一点,如果不是让我知道,我会尝试再解释一下。谢谢你的建议。

2 个答案:

答案 0 :(得分:0)

如果您知道应用程序中编码的主机名(如果是主机名),则可以在hosts文件中写入/重写该条目。

您可能会发现使用etherial或wireshark(或其他数据包嗅探器)。

如果您同时拥有客户端和服务器应用程序,我很惊讶没有配置文件或设置允许您更改此设置。如果是配置文件,您可以重写该条目......

答案 1 :(得分:0)

处理此问题的最简单方法是通过客户端和服务器之间的协作。只需让客户端将其希望使用的IP地址报告给服务器,并使服务器的行为就像连接源自该IP地址一样。此方法由HTTP proxies使用,类似的方法用于SMTP(电子邮件)。

由于您没有服务器或客户端的源代码,因此需要做一些额外的工作。

您需要创建自己的客户端和服务器。您的客户端将连接到您的服务器并告诉它应该看到的IP连接。您的服务器会记录这一点。然后您的客户端将启动客户端可执行文件。

您需要拦截服务器计算机上客户端的连接。查找连接应该来自的IP地址。您需要挂钩服务器可执行文件的接受逻辑,以查看它应该看到的IP地址而不是真实的IP地址。

所以流程是:

  1. 使用客户端计算机的人启动客户端可执行文件,这是您必须执行的可执行文件。

  2. 您的可执行文件连接到您必须制作的服务器应用程序,并告诉它应该来自的IP地址。

  3. 您的服务器应用程序会记录真实的源IP地址以及客户端告诉它的地址。

  4. 您的客户端应用程序启动常规客户端可执行文件,它与服务器建立连接。

  5. 服务器计算机上的代码拦截服务器可执行文件的代码以接受此连接,并替换您在步骤3中存储的源IP地址。