更改程序IP地址

问题描述:

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

但也许这只是根本不可能的:D。首先对于我的英语感到抱歉,我希望你能理解这一点,如果不让我知道,我会试着再解释一遍。感谢您的任何建议。

+0

我没有应用程序的源代码中的源IP地址。或者你是怎么意思的? U是否意味着在hosts文件中设置参数? – Koi

+0

是的,它是应用MMF和C++制作的,但不是由我制作的。我没有它的源代码,我只有客户端和服务器的.exe文件。我希望现在很清楚。 – Koi

+0

这听起来像是[XY问题](http://meta.stackexchange.com/a/66378/167586)。你认为这会完全解决什么问题? –

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

你可能会发现,与etherial或wireshark(或其他数据包嗅探器)。

如果你有客户端和服务器应用程序,我很惊讶没有一个配置文件或设置,允许你改变这一点。如果它是一个配置文件,你可以重新写入该条目...

+0

因此,我需要在客户端的每台PC上执行此操作,对不对?仅供记录,服务器应用程序将在VPS上。但这是我认为不相关的信息。 – Koi

+0

如果有一个配置文件,你可以预先使用正确的ip来填充它,或者当你的用户抓住这对exe文件时,你可以给它们一个脚本来设置它。 –

+0

没有配置文件。只有一个exe文件(用于客户端)。有可能使新的EXE文件可能在C#或什么将包含此EXE文件和脚本什么将重写主机文件?或者你是怎么想“用户抓取exe”的? – Koi

最简单的方法来处理这是通过客户端和服务器之间的合作。只需让客户端将希望使用的IP地址报告给服务器,并让服务器像来自该IP地址的连接一样工作。此方法由HTTP proxies使用,并且SMTP(电子邮件)使用了类似的方法。

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

您需要创建自己的客户端和服务器。你的客户端将连接到你的服务器,并告诉它它应该被视为连接的IP。你的服务器会记下这个。然后你的客户端将启动客户可执行文件。

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

所以流程是:

  1. 有人使用客户机启动客户端可执行文件,这是你必须做的可执行文件。

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

  3. 您的服务器应用程序记录了真实的源IP地址和客户端告诉它的那个IP地址。

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

  5. 您在服务器上的代码拦截服务器可执行的代码来接受这个连接并代你存储在步骤3

+0

这不仅仅是为了网络吗?我需要它的.exe应用程序。 – Koi

+0

@Koi号这个方法被HTTP,SMTP,甚至许多通用的代理使用。即使到目前为止,它只能用于网络,阻止你将它用于任何你想要的目的?您可以使用Amazon使用的[通用代理协议](http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/enable-proxy-protocol.html#proxy-protocol)。 –

+0

这对我来说看起来有点困难:D:/也许你可以帮助我? – Koi