如何将客户端的IP地址用于其他网站的请求?

时间:2018-06-07 12:00:26

标签: asp.net-mvc asp.net-core asp.net-core-mvc ip-address dotnet-httpclient

我正在尝试构建一个Web应用程序,客户端登录并希望将一些数据发送到另一个网站(例如,他想上传应用程序将读取的csv文件并将读取的数据发送到其他网站)。

该网站没有我可以使用的官方API,如果提出的请求太多,他们会阻止IP地址。

所以,我的想法是使用用户的IP地址以他的名义发送请求,以便网站不会阻止我的应用程序发出请求。

可以从asp .net core mvc / asp.net mvc执行此操作吗?

如果没有,我该怎么做才能做到这一点?

提前致谢

1 个答案:

答案 0 :(得分:1)

不,这是不可能的。我鼓励你实际阅读TCP / IP协议(HTTP,当你在它时,虽然它与这个问题没有直接关系)。就像你需要了解iOS之类的东西才能为它编写应用程序一样,如果打算编写Web应用程序,就不应该知道Internet的底层协议是如何工作的。

特别是在这里,所有通过TCP / IP进行的通信都是通过IP地址进行的。它必然是唯一的,因为客户端/服务器需要能够在那里“寻址”其数据包。基于此,即使您可以模拟用户的IP地址,结果也就是服务器将其响应直接发送给用户,而不是您的服务器。

FWIW,有一个“共享”IP地址的概念。例如,除非您拥有来自ISP的专用IP,否则您的许多其他客户将显示为您拥有IP地址。 IP地址传统上是有限的。 IPv6实际上是无限的,但大多数仍然使用IPv4,它只暴露了大约4万亿个地址。这可能听起来很多,直到你意识到每个客户都需要一个唯一的地址。只有一个人可能有一台家用电脑,一台工作电脑,一台笔记本电脑,一部智能手机,甚至还有一部商用智能手机。此外,他们还可以拥有一系列其他设备,如平板电脑,智能电视,连接恒温器等。因此,您的ISP基本上会将您的请求代理到目的地,然后它会收到响应并将其转发给您。它使用其内部IP表将响应路由回请求它的内部IP。因此,虽然技术上可以让多个客户端/服务器共享相同的外部IP,但这与您在此处讨论的内容不同。