首页 > 解决方案 > 如何使用客户的 IP 地址向另一个网站发出请求?

问题描述

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

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

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

可以从 asp .net core mvc / asp.net mvc 做到这一点吗?

如果没有,我该怎么做才能使这成为可能?

提前致谢

标签: asp.net-mvcasp.net-coreasp.net-core-mvcip-addressdotnet-httpclient

解决方案


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

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

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


推荐阅读