php - 区分使用一个真实 IP 地址的一些用户

Posted

技术标签:

【中文标题】php - 区分使用一个真实 IP 地址的一些用户【英文标题】:php - differentiate between some users that use one real ip address 【发布时间】:2017-01-09 19:52:41 【问题描述】:

我正在开发一个 php 应用程序。我需要访问唯一的客户端 IP 地址。 $_SERVER['REMOTE_ADDR'] 返回客户端 IP 地址,但问题是对于通过一个调制解调器或路由器访问我的站点的用户来说,该值是相同的。事实上,我的服务器将他识别为一个访客。 如何区分使用一个真实 IP 地址的用户?

编辑

我不想使用基于 cookie 的解决方案。 Cookie 不是可靠的解决方案。我想通过它的 ip 来识别用户,而不是 cookie。

【问题讨论】:

***.com/questions/3922658/… and ***.com/questions/3940179/… and ***.com/questions/15966812/… 我的猜测:你不能。但是,您可以尝试设置某种 cookie 并检查它们,但如果您尝试匿名访问,您也会失去它。 SessionsCookies 确实是唯一可行的方法,无需依赖第三方浏览器插件,例如 Java 或 Flash。由于服务器正在为客户端分配一个 ID 以供以后验证。否则,无论如何您都将依赖客户端提供的数据,这与 cookie 和会话一样不可靠。也许详细说明区分的目的,以便我们查看具体的用例。 【参考方案1】:

Fyryre 部分正确(还有其他解决方案,但会话和 cookie 可能是正确的解决方案)。

说您想要区分用户有点含糊。您要识别用户吗?标识正在使用的设备?您想将此与另一条信息(例如姓名或电子邮件地址)相关联吗?您是否希望这种差异化持续任何时间?如果是这样,那么与单个用户关联的 IP 地址是没有用的。

Cookie 不是可靠的解决方案

这是一个非常可靠的解决方案,除非你做一些愚蠢的事情,比如把用户名放在那里。

如果有人故意伪造他们提供给您的信息/冒充他人,即使他们已经泄露了凭据,但在不知道您要达到的目标或威胁模型的情况下,您可以使用一些补充方法,因此无法提供建议.

【讨论】:

感谢您的回复。我正在实施一个分析系统,我需要为此目的识别用户。我想区分使用相同 IP 地址的用户,并为每个用户保存分析记录。但是,如果我依赖 PHPSESSSIONID 或其他浏览器 cookie,用户可以删除这些 cookie,因此,将为他/他保存另一条分析记录。结果,我的分析系统将没有真实和准确的信息。 这不能回答问题。用于捕获营销信息的分析系统与用于调查欺诈的分析系统之间存在巨大差异。您也没有提到这适用的司法管辖区以及您打算如何解决任何监管限制。

以上是关于php - 区分使用一个真实 IP 地址的一些用户的主要内容,如果未能解决你的问题,请参考以下文章

PHP获取用户的真实IP地址

PHP转换IP地址到真实地址的方法详解

PHP 获取用户的真实IP地址。

php获取用户真实ip地址与地理位置

如何在 php 中获取真实的客户端 IP 或地理位置?

Nginx反向代理 Laravel获取真实IP地址(PHP)