Php 通过internet从本地LAN获取客户端ip

Php 通过internet从本地LAN获取客户端ip,php,ip,Php,Ip,问题是,在我的研究所,我们都有相同的全球IP,现在我有了一个网站,我们需要在投票系统中唯一地识别投票用户。。。否则,我们使用cookies来识别他们,他们很容易删除cookies来操纵投票。 该网站的本地IP是192.168.1.69,因此当有人在那里发表评论时,我们会得到他们的客户地址,但我需要编辑此代码,以便它检查该网站(不是IP)是否正在从我们的研究所访问,如果是,则应通过ping本地IP来存储客户地址。所以请帮帮我 下面是一些相关的代码 if(!isset($_SERVER['HTTP_

问题是,在我的研究所,我们都有相同的全球IP,现在我有了一个网站,我们需要在投票系统中唯一地识别投票用户。。。否则,我们使用cookies来识别他们,他们很容易删除cookies来操纵投票。 该网站的本地IP是192.168.1.69,因此当有人在那里发表评论时,我们会得到他们的客户地址,但我需要编辑此代码,以便它检查该网站(不是IP)是否正在从我们的研究所访问,如果是,则应通过ping本地IP来存储客户地址。所以请帮帮我

下面是一些相关的代码

if(!isset($_SERVER['HTTP_X_FORWARDED_FOR']))
$ip = $_SERVER['REMOTE_ADDR'];
else 
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];

首先,我不会使用(仅仅)基于IP的登录系统。阅读上面的评论

嗯。。即使在多次阅读你的问题后,我也不确定我是否正确理解了你的问题。但如果我理解正确,可能还有一个技术“限制”:

我的理解是:

你有一个网站,比如www.xyz.com。然后,您有一个本地网络,其中有许多客户端通过NAT网关访问internet

你正在计划:

如果在www.xyz.com上NAT路由器的IP(指您所在机构内部的客户端)被识别为客户端IP,您是否计划进行“pingback”以从您所在机构的网络中获取本地客户端IP

如果我对你的理解是正确的,那么这是不可能的,因为它违背了NAT的原则。NAT的意思是(简单地说)从internet地址空间中隐藏本地IP

作为程序员要打破的限制;)有很多方法可以通过NAT遍历来实现“pingback”。但我建议您不要实施基于IP的登录系统。因为:

  • 这是不安全的,因为IP很容易被欺骗。(您只需断开一台计算机的连接并使用其IP地址)

  • DHCP是怎么回事?如果IP只需更改一次怎么办


注意:IP不是登录的足够ID

您需要将其标记为PHP“常规”登录系统是“保证”唯一投票权的唯一方法。我将永远不会使用ip,因为ip可能被欺骗、不准确等。ofc的cookies可以被清除。即使使用登录系统,也无法真正限制创建多个帐户。限制唯一投票的唯一真正方法是,在您向某人发送有效的登录名/令牌进行投票之前,验证此人是否是他们所说的人。当我说验证时,我不是指通过互联网。