我有一台服务器,但是使用服务器IP的cURL。我想要卷曲使用进入服务器的人的IP地址。如何通过cURL
使用用户IP答案 0 :(得分:1)
您希望发出一个HTTP请求,让远程服务器认为它来自您用户的IP地址。这是不可能的。 HTTP请求中不包含用户的IP地址;你在$_SERVER['REMOTE_ADDR
]中得到的值来自IP协议。
但是,您可以充当您的用户的代理。看来你已经知道了,但你无法找到正确的方法。
实际上,您必须向远程服务器的请求添加标头。但是,您传递给CURLOPT_HTTPHEADER
的参数是一个HTTP请求列表,这些请求逐字写入请求cUrl
发送。
这意味着您的代码应为:
curl_setopt($ch, CURLOPT_HTTPHEADER, array("X-Forwarded-For: $ip"));
警告远程服务器可以忽略标头,因为程序员监督客户端使用HTTP代理的可能性,或者因为标头可以很容易伪造。如果它忽略它,那么它使用服务器的IP地址作为客户端IP地址(这是你想要首先避免的)。
详细了解X-Forwarded-For
HTTP标头。