您好我正在使用此函数获取不同系统的IP地址..但每次返回相同的值时:117.239.82.182
function getRealIpAddr()
{
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'];
}
return $ip;
}
答案 0 :(得分:1)
117.239.82.182是外部IP地址。如果连接到PHP服务器的所有系统都位于相同的外部IP地址后面,则所有这些系统都将被记录为相同的IP地址。
您的脚本不使用本地IP。不要以为它甚至可能。您看到的IP是您公司防火墙的IP。
答案 1 :(得分:1)
编辑:(在评论中作出一些澄清后答案发生了根本变化)
您可以编辑用户浏览器的用户代理设置。要了解如何更改各种浏览器follow this link中的设置。然后,您应该修改PHP脚本以读取浏览器的User-Agent。
在PHP中,$_SERVER['HTTP_USER_AGENT']
返回浏览器的用户代理设置。例如。您可以将公司/系统/ 1.02 Bla bla bla 定义为用户代理。然后,当您收到相同的字符串时,您可以认为它来自已知的主机。
注意 User-Agent 很容易被欺骗。所以这种方法并不安全。安全的解决方案是实施 VPN 解决方案。