Php 什么是Internet连接设备IP/MAC的唯一标识?

Php 什么是Internet连接设备IP/MAC的唯一标识?,php,javascript,Php,Javascript,我正在制作一个只显示一次弹出窗口的脚本,那么它将永远不会在该设备上再次显示 这怎么可能呢 我已经尝试过使用cookies,但是用户可以删除这些cookies,因此效果有限 另一个问题是,每个设备、IP地址或MAC地址的唯一性是什么?唯一的方法是cookie。在HTTP请求中,您可以访问的机器没有100%唯一可识别的东西。是,用户可以删除cookie。这是有意为之,随它去。最明显的两个选项是cookie或帐户上的标志(如果您的用户经过身份验证) 尽管你提到cookies可以被删除,但这仍然是一种可

我正在制作一个只显示一次弹出窗口的脚本,那么它将永远不会在该设备上再次显示

这怎么可能呢

我已经尝试过使用cookies,但是用户可以删除这些cookies,因此效果有限


另一个问题是,每个设备、IP地址或MAC地址的唯一性是什么?

唯一的方法是cookie。在HTTP请求中,您可以访问的机器没有100%唯一可识别的东西。是,用户可以删除cookie。这是有意为之,随它去。

最明显的两个选项是cookie或帐户上的标志(如果您的用户经过身份验证)

尽管你提到cookies可以被删除,但这仍然是一种可靠的说法,“我以前为这个客户做过一些事情”。如果用户删除Cookie,那么他们很有可能知道自己在做什么,并且应该期望重复任务(例如登录其他网站)

如果您的用户经过身份验证(即:他们必须登录到您的站点/服务),那么您可以轻松地存储一个标志,表明用户已经收到通知

这种方法当然更可靠,但依赖于身份验证。长话短说:你需要得到你能得到的,而cookies是你拥有某种形式的唯一设备ID的最佳选择


关于你的另一个问题:现实中没有什么是独一无二的。MAC地址(你无论如何都无法访问)可以被欺骗,IP也可以被共享。

两者都不能。数以百万计的互联网设备将
192.168.0.2
作为其IP。所以这不是唯一的。MAC地址根本不是互联网的东西,而是以太网的东西


如果你更详细地解释你的外部问题,可能有一个解决方案。但从你已经说过的话来看,这听起来很奇怪。同一个人在两个不同的设备上应该获得两次弹出窗口?但是如果两个人在同一台机器上,第一个人应该只得到它?很难想象在一个用例中,您应该不遗余力地确保这一点。

您试图实现的目标无法实现。就让它去吧,对饼干感到高兴存储设备信息是非常错误的。除了cookie之外,您不能在用户端存储太多信息。您可以保存客户端(服务器)的IP地址,并检查它是否已被使用。但是你知道,使用dhcp和al时,地址会发生变化。MAC是数据链路层使用的低级地址-您不应该访问MAC地址客户端。(公共)IP和MAC在给定时间都是唯一的。@ring0公共IP根本不唯一。MAC应该是唯一的,但仅在本地链路级别相关,并且不会跨网络运行。@deceze否则您将遇到路由问题。。。至于MAC地址,正如我在上面的评论中所说,它确实是以最低的lewel使用的——然而,一些本地安装的应用程序敢于使用它来识别硬件。当然,浏览器不提供这些信息。[在Linux上,您可以临时将接口的MAC地址更改为所需的地址!]您可以使用DNA样本。那你就得小心双胞胎了。为了确保别人不会给你其他人的样品,你应该亲自画。@DavidSchwartz。但是,如果你要透露DNA取样的地点,他们也可能在你的测试中欺骗你!