2

问题是,在我的研究所,我们都有相同的全球 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'];
4

1 回答 1

2

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

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

我的理解:

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

您正在计划:

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

如果我理解正确,那么这是不可能的,因为它违反了 NAT 的原则。NAT 的含义是(简单地说)从互联网地址空间中隐藏本地 IP。

作为程序员要打破的限制;)将有一些方法可以使用称为 NAT 遍历的方法进行“pingback”。但我建议您不要实施基于 IP 的登录系统。因为:

  • 那是不安全的,因为 IP 很容易被欺骗。(你可以断开一台机器并使用它的 IP 地址)

  • 什么是 DHCP?如果IP应该改变一次怎么办?

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

于 2013-01-30T20:26:49.550 回答