为什么我的服务器和远程ip显示相同?

时间:2013-07-23 06:12:32

标签: php ip

我刚注意到我的所有用户都拥有相同的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

2 个答案:

答案 0 :(得分:2)

看起来您的nginx服务器设置不正确。 查看this文章。

答案 1 :(得分:1)

如果您的服务器位于同一台计算机上的代理服务器后面并且代理服务器未将remote_addr设置为客户端IP,则可能会发生这种情况。 remote_addr记录将请求发送到此服务器的IP。

Client -> Proxy -> Server

与上面的模型一样,对于Proxy,远程ip addr是Client ip,对于Server,如果代理设置不正确,则远程ip addr是Proxy ip。