如何通过IP地址检测“访问时长”?

时间:2012-02-23 05:19:32

标签: php ip-address

我知道可以使用他们的IP地址检测网站访问者的访问时长。但我怎么知道他们使用PHP脚本在我的网站上在线多少小时甚至几分钟?

4 个答案:

答案 0 :(得分:1)

我认为你不能收集准确的数据,但可以像这样打电话。

a)确定用户何时参考IP地址登录。

b)检测用户何时离开网站。

首先,您可以通过将其存储在数据库或您喜欢的任何内容中来创建浏览您网站的IP地址的记录。

要确定谁正在浏览您的网站,您可以在他/她进入网站时尝试获取用户的IP地址并将其与登录时间一起存储在某处。例如,您可以使用以下记录将其存储在数据库中。

ipAddress |  LoginTime  |  LogoutTime

只要有人进入您的网站,您就会在登录时将ipAddress存储在您的记录中。但在存储之前,您需要确保副本不存在。即在存储之前检查是否已存在ipAddress。如果它存在则表示用户尚未关闭您的网站。

现在您需要确定用户何时离开您的网站,您可以使用window.onunload通过javascript执行此操作,该用户应该在用户离开您的网站时告诉您。您可以拨打ajax电话,了解用户何时离开网站。

$(window).bind('beforeunload', function() {
    // ajax call
    // write to db..
});
通过这种方式,您可以了解用户何时进入并离开您的网站。我不是说这就是它。但这应该有助于您了解构建自己的逻辑。希望这可以帮助你。

答案 1 :(得分:1)

不,由于您永远不知道访问者何时关闭最后一页,因此无法检测到准确的“您网站停留时间”。

但是你可以得到一个大概的时间来计算一天中第一次访问和最后一次访问之间的时间,或者别的东西。你可以保存每次访问的时间和“从ip”,然后做一些计算。

此外,最佳解决方案可能是使用某些第三方分析服务,例如Google analytics。它是免费的,而且非常强大。

答案 2 :(得分:0)

一种简单的方法是通过Ajax。

为用户打开或启动会话,让Ajax每分钟对服务器执行一次ping操作。

在您的日志或数据库或单位中,您可以记录该IP会话的开始时间并记录上次ping时间。

如果你继续录制最后一次ping时间,那么你应该接近内部。您的用户访问时长的分钟。

更新:

您可以使用隐藏的iframe执行相同操作,每60秒进行一次元刷新。答案的要点是提出一种替代技术,通过给出AJAX示例来帮助海报。当然还有其他方法可以实现。

答案 3 :(得分:0)

完全不同的方法是访问会话商店。

如果您可以访问存储会话的文件夹,则可以获取最近更新或最早的会话列表。如果某些事情在一段时间内处于非活动状态,您将能够根据会话文件未被触及的时间来辨别它处于非活动状态的时间。

然后由您的应用程序/网站决定如何在用户访问网站时更新会话文件。如果将其IP存储在会话文件中,则可以从文件中再次读取它。

这还取决于您的服务器重置会话文件的频率,但如果这些内容在您的控制之下,这是另一种值得考虑的技术。