我为每个系统获得相同的IP - 如何通过PHP编码获取IP地址

时间:2012-08-29 08:20:18

标签: php ip

您好我正在使用此函数获取不同系统的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;
}

2 个答案:

答案 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 解决方案。