我刚刚注意到我的所有用户都有相同的ip。直到昨天它还运行得很好。
我使用下面的代码来获取用户ip及其返回的服务器ip 65.254.32.34
:
<?php
function getrealip() {
if (!empty($_SERVER['HTTP_CLIENT_IP']))
{
$ip = $_SERVER['HTTP_CLIENT_IP'];
} else if (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
?>
我现在正在用这个code
做测试,它在两个ip上都显示相同。
<?php
echo 'Server IP: ' . $_SERVER['SERVER_ADDR'] . '<br />';
echo 'Your IP: ' . $_SERVER['REMOTE_ADDR'];
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{
echo '<br />Forwarded For: ' . $_SERVER['HTTP_X_FORWARDED_FOR'];
}
?>
输出为:
Server IP: 65.254.32.34
Your IP: 65.254.32.34
我的ip在哪里:115.240.13.83
我用我的第二个代码做了一页:http://ffsplus2.com/myip.php
看起来你的nginx服务器设置不正确。看看这篇文章。
如果您的服务器位于同一台机器上的代理之后,并且该代理没有将remote_addr设置为客户端ip,则可能会发生这种情况。remote_addr记录向该服务器发送请求的ip。
Client -> Proxy -> Server
与上面的模型一样,对于Proxy,远程ip地址是Client ip,对于Server,如果代理设置不正确,则远程ip地址为Proxy ip。