我需要使用用户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);
答案 0 :(得分:0)
我认为您根本无法做到这一点。首先,您正在尝试使用另一个人的IP发出请求,除非使用代理,否则这基本上是不可能的。其次,如果您已彻底阅读了提供的链接中的答案,则您在此处尝试通过假冒标题中的IP欺骗服务器,使您认为您是另一个用户。如果处理响应的(目标)服务器脚本仅检查HTTP标头(对我来说似乎很不安全),则此方法将起作用。
我将尝试通过一个示例进行解释。假设您的用户IP为12.34.56.78
,而您自己的IP为99.88.77.66
。然后,如果您从自己的服务器/ PC(HTTP_X_FORWARDED_FOR: 12.34.56.78
)发送带有标头99.88.77.66
的请求,服务器将忽略该请求和/或还检查$_SERVER['REMOTE_ADDR]
(其中包含99.88.77.66
),它将注意到访问URL的不是用户IP,而是您的IP。