0

我有一个通过代理服务器连接到互联网的本地网络,代理服务器 IP 地址是192.168.0.1。网络中的所有系统手动分配 IP 地址,如 192.168.0-6.1-255 ,子网掩码 255.255.248.0,Default gateway 192.168.0.1

我在本地网络中创建了另一台服务器,用于在本地访问我的网站,其 IP 地址为192.168.0.25,子网掩码 255.255.255.0,默认网关 192.168.0.25

本地网络中的所有系统现在都可以使用该地址访问该网站

http://192.168.0.25/

我必须跟踪访问我网站的所有系统,所以我使用了$_SERVER['REMOTE_ADDR'] php 中的函数。但是我得到的所有访问我网站的系统的 IP 地址与代理服务器 IP 地址(192.168.0.1)相同。

请帮我获取每个系统的正确 IP 地址。

4

2 回答 2

0
function getRealIpAddr()
{
    if (!empty($_SERVER['HTTP_CLIENT_IP']))  
    {
      $ip=$_SERVER['HTTP_CLIENT_IP'];
    }
    elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) 
    {
      $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    else
    {
      $ip=$_SERVER['REMOTE_ADDR'];
    }
    return $ip;
}

echo $userIP = getRealIpAddr();
于 2012-11-07T06:27:17.523 回答
0

尝试这个

if (!empty($_SERVER['HTTP_CLIENT_IP'])) {   //check ip from share internet
        $ip = $_SERVER['HTTP_CLIENT_IP'];
    } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {   //to check ip is pass from proxy
        $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    } else {
        $ip = $_SERVER['REMOTE_ADDR'];
    }
于 2012-11-07T06:06:38.083 回答