如何获取本地网络中使用php从本地服务器访问网页的系统的IP地址

如何获取本地网络中使用php从本地服务器访问网页的系统的IP地址,php,lan,Php,Lan,我有一个通过代理服务器连接到internet的本地网络,代理服务器IP地址是192.168.0.1。网络中的所有系统手动分配IP地址,如192.168.0-6.1-255、子网掩码255.255.248.0、默认网关192.168.0.1 我在本地网络中创建了另一台服务器,用于本地访问我的网站,其IP地址为192.168.0.25,子网掩码为255.255.255.0,默认网关为192.168.0.25 本地网络中的所有系统现在都可以使用该地址访问网站 http://192.168.0.25/

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

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

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

http://192.168.0.25/

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

请帮助我获得每个系统的正确IP地址

试试这个

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'];
    }

要添加到这一点上,请看一下symfonyhttp请求对象是如何捕获这一点的@Rishi Kalia不,我正在从本地网络的不同系统进行检查,所有系统都显示相同的ip 127.0.0.1。函数$\u SERVER['HTTP\u X\u FORWARDED\u FOR']正在获取此IP。但是,如果我尝试从代理服务器访问此页面,它将显示其自己的IP 192.168.0.1,但这里的函数$\u server['REMOTE\u ADDR']他得到了IP@JosephPaul是您的代理服务器,或者更具体地说是防火墙,为您提供了127.0.0.1..我已经仔细检查了脚本,它正在响应我想要的结果..@Rishi Kalia我已经关闭了防火墙,但可能是因为代理服务器。但我需要一个解决方案,我不能避免代理服务器,我不能把网页在代理服务器。这两台服务器应位于不同的位置。请给我一个解决方案。我也有同样的问题。你找到解决方案了吗?
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();