2011-02-28 132 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