0

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

2 回答 2

1

117.239.82.182 是外部 IP 地址。如果连接到 PHP 服务器的所有系统都位于相同的外部 IP 地址后面,则它们都将被记录为相同的 IP 地址。

您的脚本不采用本地 IP。不要认为这甚至是可能的。您看到的 IP 是您公司防火墙的 IP。

于 2012-08-29T08:28:16.653 回答
1

编辑:(在评论中进行了一些澄清后,答案发生了根本变化)

您可以编辑用户浏览器的User-Agent设置。要查看如何更改各种浏览器中的设置,请点击此链接。然后你应该修改你的 PHP 脚本来读取浏览器的 User-Agent。在 PHP 中,$_SERVER['HTTP_USER_AGENT']返回浏览器的用户代理设置。例如。您可以将诸如Company/System/1.02 Bla bla bla定义为User-Agent。然后,当您收到相同的字符串时,您可以假设它来自已知主机。

注意User-Agent很容易被欺骗。所以这种方法并不安全。安全的解决方案是实施VPN解决方案。

于 2012-08-29T08:44:02.270 回答