2011-02-28 85 views
7

我有一个网站允许任何用户的功能,但每个用户只允许使用固定的时间。通过IP地址限制访问用户的功能

允许我进入一些更详细的内容,我们的“匿名/访客”用户每24小时只能在数据库中搜索条目3次。有没有一种方法可以使用IP来跟踪用户对此的尝试,在3次尝试后限制它们,然后在24小时后过期?

该网站建立在PHP中,但任何语言提供这种功能,我对它开放。

编辑:

这种理念源于客户,他们的“批发商”放养自己的产品清单,他们希望提供给该网站的用户信息。但是,他不希望竞争对手利用他的系统,并在他的零售商身上“削弱”他。因此限制。如果你能提出更好的方法来达到同样那么这会是惊人的

干杯, 丹

+1

你有没有考虑在同一个防火墙后面多人来自同一访问您的网站作为嘉宾,例如,几个学生发生了什么学校?这种方法可能会阻止大多数学生在数据库上搜索一次。 – kojiro 2011-02-28 10:55:46

+0

请解释为什么客人每24小时只能搜索3次。我敢肯定,SO成员可以给你提供比IP地址限制更好的解决方案。 – 2011-02-28 10:59:43

+0

我更新了问题:) – 2011-02-28 12:30:06

回答

8

您必须使用$ _SERVER全局变量,像这样:

if ($_SERVER['REMOTE_ADDR'] == '127.0.0.1') { 
    // restrict 
} 

但你必须考虑小二的笔记:按IP地址进行限制并不是一个好主意。

编辑: 是有建设性的。

如果您想在低级别上使用它,您可以使用cookie。这些变量存储在用户的浏览器中,如果用户在本地清除cookie,他/她可以覆盖您的限制。
http://www.php.net/manual/en/function.setcookie.php

更好的解决方案是使用会话此过滤器:
http://php.net/manual/en/session.examples.basic.php