gpt4 book ai didi

php - 通过互联网从本地局域网获取客户端IP

转载 作者:搜寻专家 更新时间:2023-10-31 21:13:13 25 4
gpt4 key购买 nike

问题是,在我的研究所中,我们都拥有相同的全局 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 不足以作为登录 ID

关于php - 通过互联网从本地局域网获取客户端IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14612056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com