【问题标题】:How to check if visitor's IP Address is still active or online?如何检查访问者的 IP 地址是否仍然有效或在线?
【发布时间】:2012-02-26 05:13:22
【问题描述】:

是否可以使用他们的 IP 地址检查访问者是否仍然在线?

我已经创建了一个 javascript 和 php 来检查访问者的 IP 地址,当他们使用 onLoad 和 onBeforeUnload 事件打开我的一个页面时。但是在某些情况下,我的脚本无法检测到访问者是否仍在打开我的网站。因为 onBeforeUnload 并不总是可靠的。

在这种情况下,我想知道是否有其他方法可以检测访问者是否仍然在线。

如果访问者仍然打开页面但没有阅读它,因为他/她可能正在阅读其他网站或运行其他程序,我仍然会认为他/她在线。

但是,如果访问者关闭了浏览器,但我的脚本未能检测到其卸载事件,我想知道他/她是否仍然在线。

PHP 或 javascript 适合我。

【问题讨论】:

    标签: php javascript


    【解决方案1】:

    您应该创建通过 ajax “ping”(发送请求,可能为空白)服务器的 JavaScript 代码。该请求应该反过来“标记”该用户在 PHP 中处于活动状态(可能在数据库中,或者您使用的任何存储方法中)。您可以参考您的存储来查看用户是否在线。

    或者,您可以在不使用 AJAX 的情况下使用它,但是您需要在站点中的每个页面请求(每次遍历页面时)都执行此“ping”操作。通过这种方式,只要用户登录,PHP 就会为每个访问的页面“标记”用户。

    如果该用户被“标记”为活跃超过某个阈值(例如 30 分钟),则认为他处于离线状态。

    此功能不需要 IP 地址。您只需要知道该用户仍被标记为在线。

    【讨论】:

      【解决方案2】:

      但是,如果访问者关闭了浏览器,但我的脚本未能检测到它的卸载事件,我想知道他/她是否仍然在线。

      这是不可能的。
      而且我怀疑有任何理由这样做。

      【讨论】:

      • 当然是有原因的,很多网站都做了类似的事情。想想留言板,它们通常显示有多少用户在线,或者在过去 5-10 分钟内活跃。我见过很多网站告诉有多少用户是内联的。如果不知道这些人何时下线,就不可能准确统计在线用户。还有几种方法可以做到这一点,有些方法比其他方法更好,但肯定可以做到。
      • 大声笑,这是一个虚构的数字,只是根据上次用户活动的粗略估计:)没有人需要准确计算这个无用的数字。
      【解决方案3】:

      据我所知,最可靠的方法是使用 now.js for Node。您可以设置一个简单的服务器,并监听连接和断开连接。当触发时,您可以将所需的数据发送到您的 php,或在节点中处理它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-04
        • 2016-03-12
        • 2011-09-06
        • 2013-06-21
        • 2016-04-18
        • 2011-12-17
        • 1970-01-01
        • 2011-04-20
        相关资源
        最近更新 更多