我正在调解从客户端A到服务器B的请求。客户端A可以是电话或笔记本电脑。服务器B想知道客户端A的IP地址,但他们正在$_SERVER['REMOTE_ADDR']
中查找它。因为我正在点击服务器B,他们正在获得$_SERVER['REMOTE_ADDR']
的“错误”值 - 他们正在获取我服务器的IP地址。我可以做些什么,以便服务器B在其端点访问$_SERVER['REMOTE_ADDR']
时会看到客户端的IP地址?
答案 0 :(得分:5)
这发生在PHP脚本无法覆盖的图层上。 X-Forwarded-For
标头用于中继真正的客户端IP,但远程服务器必须支持这种易于欺骗的值。
$header = "X-Forwarded-For: {$_SERVER['REMOTE_ADDR']}, {$_SERVER['SERVER_ADDR']}";
curl_setopt($curl_handle, CURLOPT_HTTPHEADER, array($header));
答案 1 :(得分:0)
如果缺少更多信息,在最基本的级别,您应该删除自己的“开发者IP”,这样您就不会包含在任何统计信息/数据/日志中......
您的IP可能与相关服务器不同:
<?php
$dev_ip = '217.12.14.14' // your dev IP address
if ($_SERVER['REMOTE_ADDR'] == $dev_ip){
// do nothing
} else {
// do|show|log something
}
这不考虑动态IP地址分配(而不是静态IP)。动态IP通常由ISP分配,这会导致进一步的问题。