如何获取本地网络中使用php从本地服务器访问网页的系统的IP地址
我有一个通过代理服务器连接到internet的本地网络,代理服务器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/
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();