php - 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);
解决方案
我认为你根本无法做到这一点。首先,您试图使用另一个人的 IP 来发出请求,除非您使用代理,否则这基本上是不可能的。其次,如果您已经阅读了您提供的链接中的答案,那么您在这里尝试做的就是通过在标头中伪造 IP 来欺骗服务器认为您是另一个用户。如果处理响应的(目标)服务器脚本只检查 HTTP 标头(这对我来说似乎很不安全),这将起作用。
我将尝试用一个例子来解释它。假设您的用户 IP 是12.34.56.78
,而您自己的 IP 是99.88.77.66
。HTTP_X_FORWARDED_FOR: 12.34.56.78
然后,如果您从自己的 server/pc ( )发送带有标头的请求99.88.77.66
并且服务器忽略该请求和/或还检查$_SERVER['REMOTE_ADDR]
(其中包含99.88.77.66
),它会注意到访问 URL 的不是用户的 IP,而是您的。
推荐阅读
- r - 有哪些方法可以从 R-Shiny 应用程序运行 Matlab 脚本?
- python-3.x - Ubuntu 中 Chrome 的 Python 闭环
- python - 使用多个单独的 plt.plot 在 Spyder 中内联图形
- json - 在 VueJS 中更改环境变量后,有没有办法热重载我的 Vue 页面?
- python - 在 python 中使用 __getitem__ 遍历字典
- python - python: matplotlib 输出文件名
- ms-access - 当有人在 MS Access 中更改表中的记录时,我们能否获得“修改者”名称
- java - 每当我从主类调用任何方法时,我都会得到“0”值。这是为什么呢?
- swagger - OpenApi Codegen“获取架构名称失败:”
- node.js - nodejs put方法更新数据