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

我为每个系统获得相同的IP-如何通过PHP编码获得IP地址,php,ip,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']

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

117.239.82.182是一个外部IP地址。如果所有连接到PHP服务器的系统都位于相同的外部IP地址之后,那么所有这些系统都将被记为相同的IP地址

您的脚本不使用本地IP。我想这根本不可能。您看到的IP是您公司防火墙的IP。

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

您可以编辑用户浏览器的用户代理设置。查看如何在各种浏览器中更改设置。然后,您应该修改PHP脚本以读取浏览器的用户代理。 在PHP中,
$\u服务器['HTTP\u USER\u AGENT']
返回浏览器的用户代理设置。例如,您可以定义为用户代理,类似于公司/系统/1.02 Bla Bla Bla。然后,当您收到相同的字符串时,您可以假定它来自一个已知的主机


请注意,用户代理很容易被欺骗。所以这种方法是不安全的。安全的解决方案是实施VPN解决方案。

此代码是否由
Cronjob
调用?117.239.82.182是外部IP地址。所有客户端系统是否在同一个建筑/区块/公司中?是的。。同一组织。。我正在我的公司检查此代码。@disha_learning,如果它在同一个组织中,那么很可能每个人都有相同的IP地址。如果要跟踪LAN IP,
$\u服务器['REMOTE\u ADDR']将起作用。我的要求是区分同一组织中的每个系统$_服务器['REMOTE_ADDR']也会为每个系统返回相同的结果。是。。但是有没有办法追踪这些系统之间的独特之处。。它们将始终由同一台服务器托管。@disha_使用服务器()中所有可用信息的组合进行学习,这也可能导致重复。PHP无法获取mac地址或SUID,因此您永远无法识别带有PHPSo的计算机。您的意思是,如果系统由同一台服务器托管,则无法通过PHP在系统中找到唯一性。如果可能,客户端可以告诉服务器它们是谁。连接时使用输入参数。示例:@disha_据我所知,这是不可能/不可靠的。你应该实施另一种策略。请看我的答案。系统如何与您的PHP脚本连接?基本上,我正在构建一个应用程序来保存所有用户的数据。。每个用户都可以登录到这个系统,我想限制任何用户都不能从任何其他系统登录!!用户从常规浏览器(如firefox、chrome等)登录?系统指的是计算机或应用程序系统?但这如何帮助识别每个系统的唯一性。。很抱歉但是我没有完全明白你的意思。。