3

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

怎么可能做到这一点?

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

另一个问题是每个设备、IP 地址或 MAC 地址是完全唯一的?

4

3 回答 3

4

唯一的方法是饼干。关于您在 HTTP 请求中可以访问的机器,没有什么是 100% 唯一可识别的。是的,用户可能会删除 cookie。这是故意的,忍受它。

于 2013-01-23T10:25:23.167 回答
3

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

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

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

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

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

于 2013-01-23T10:25:55.763 回答
2

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

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

于 2013-01-23T10:28:59.627 回答