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

标签 php ip

问题是,在我的研究所中,我们都拥有相同的全局 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/

相关文章:

java - 我如何从 java web 应用程序跟踪用户 Windows 登录名

javascript - 自动登录网络摄像机

linux - IPTables发送的TCP_RST段的源地址

php - 在非对象 app\Controller\CarriesController.php 第 5 行调用成员函数 create()

php - 如何在Opencart 2.3x版本的模板文件中加载 Controller

PHP - exec sudo 命令不返回任何内容

android - 获取我的 wifi ip 地址 Android

php - PDO::ATTR_AUTOCOMMIT 忽略非事务性 INSERT/UPDATE

php - 如何只显示值为 0 的项目?

ip - 如何从远程主机的以太网地址获取其IP地址?