首页 > 解决方案 > PHP中带有用户IP地址的cURL请求

问题描述

我需要使用用户 IP 地址而不是服务器 IP 地址发送请求。我在这里发现了类似的问题(cURL ip address),但这对我没有帮助。任何想法这里有什么问题?我打印了$ip,它在那里显示了正确的用户 IP,所以应该没问题,但事实并非如此。

$curl = curl_init("MYURL");
curl_setopt( $curl, CURLOPT_HTTPHEADER, array("REMOTE_ADDR: $ip", "HTTP_X_FORWARDED_FOR: $ip"));
curl_exec($curl);

标签: phpcurlrequest

解决方案


我认为你根本无法做到这一点。首先,您试图使用另一个人的 IP 来发出请求,除非您使用代理,否则这基本上是不可能的。其次,如果您已经阅读了您提供的链接中的答案,那么您在这里尝试做的就是通过在标头中伪造 IP 来欺骗服务器认为您是另一个用户。如果处理响应的(目标)服务器脚本检查 HTTP 标头(这对我来说似乎很不安全),这将起作用。

我将尝试用一个例子来解释它。假设您的用户 IP 是12.34.56.78,而您自己的 IP 是99.88.77.66HTTP_X_FORWARDED_FOR: 12.34.56.78然后,如果您从自己的 server/pc ( )发送带有标头的请求99.88.77.66并且服务器忽略该请求和/或还检查$_SERVER['REMOTE_ADDR](其中包含99.88.77.66),它会注意到访问 URL 的不是用户的 IP,而是您的。


推荐阅读