如何使用Apache或PHP转发客户端IP地址

时间:2016-07-20 05:03:23

标签: php apache http nginx

您好我想知道是否可以通过重定向或卷曲将客户端/访客IP地址转发到另一个站点。例如,假设当访问者访问我的网站时,我想进行重定向并将其发送到site1.com。但是我没有使用我的IP地址请求该网站,而是想转发他们的IP地址并使用他们自己的IP地址。或者比如说我想做一个卷曲请求,但是我想转发他们的IP地址并使用他们的IP地址,而不是使用我服务器的IP地址。这可能吗?或者任何人都能指出我正确的方向?感谢

1) A Visitor Visits My Site
2) Visitor IP Address Gets Forwarded And Visitor Gets Redirected To Another 
         Site 
3) The Requesting Webpage See's Visitor IP Address Instead Of Mines
         Due to Forwarding

1 个答案:

答案 0 :(得分:3)

在发出HTTP请求时(例如,通过CURL或套接字),您不能使用其他人的IP地址,因为它是您的服务器正在执行请求,并且远程服务器检测到IP地址(您无法控制它们)。

但是,您可以发送一个标头来定义用户的IP地址,并代表他们发出请求。 X-Forwarded-For通常用于此。远程服务器可以使用此标头。

CURL示例:

curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "X-Forwarded-For: " . $_SERVER['REMOTE_ADDR']
]);