问题是,在我的研究所中,我们都拥有相同的全局 IP,现在我有一个网站,我们需要在投票系统中唯一地识别用户的投票...否则我们使用 cookie 来识别他们,这他们很容易删除以操纵民意调查。 该网站的本地 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 网关访问互联网的客户端的本地网络。
您正在计划:
如果 NAT 路由器的 IP(意味着来自您机构内部的客户端)被识别为 www.xyz.com 上的客户端 IP,那么您计划进行“pingback”以从您机构网络内部获取本地客户端 IP?
如果我理解正确的话,那么这是不可能的,因为它违反了 NAT 的原则。 NAT 的含义(简单来说)是从互联网地址空间中隐藏本地 IP。
作为程序员要打破的限制;)将会有一些方法可以通过称为 NAT 穿越的方法来实现“pingback”。但我建议您不要实现基于 IP 的登录系统。因为:
这不安全,因为 IP 很容易被欺骗。 (您可以仅断开一台计算机的连接并使用其 IP 地址)
DHCP 是什么?如果 IP 更改一次会怎样?
注意:IP 不足以用于登录
关于php - 通过互联网从本地 LAN 获取客户端 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14612056/