2010-05-11 66 views
0

我希望我的網站只能從兩個IP地址訪問。 當有超過2個IP地址訪問該站點時,它將發生錯誤。 可以在PHP這樣做的任何機構請幫我PHP:同時只允許兩個IP地址

謝謝

+1

你的意思是多於2個ID地址*同時*? – 2010-05-11 10:58:57

+0

實際上,我的網站一次只能從2個IP訪問。 當第三個ip出現問題時,它會顯示一個錯誤。 當一個來自2個IP的當前訪問站點註銷,那麼只有第三個IP可以訪問該站點。 – Santanu 2010-05-11 11:06:26

+0

你想用這種方式配置你的網絡服務器,如果這是你真正想要的,但我會冒險猜測暗示會比你預計的更嚴重 – 2010-05-11 11:19:14

回答

1

要限制併發用戶的數量,你需要某種類型的會話存儲在數據庫中。 然後,當新用戶登錄時,檢查是否已經有來自不同ips的兩個會話,並且在這種情況下會引發錯誤。

請注意,如果有人不活動,您必須使會話快速過期,所以他不會因爲他沒有註銷而阻止其他人登錄。

+0

謝謝您的回答。但我很困惑,如果有人不活躍,我該如何過期? 我的意思是我怎麼會知道? – Santanu 2010-05-11 11:26:47

+0

每當登錄用戶執行某些操作時,都會存儲時間戳。 然後,您可以忽略非活動會話('(time() - lastactivity)> delay')和/或輕鬆刪除它們。 – ThiefMaster 2010-05-11 11:44:40

1

使用$_SERVER['REMOTE_ADDR']獲得進入連接的地址和測試針對它進行相應的重定向或你有什麼。

1

您需要使用$_SERVER['REMOTE_ADDR']超全局變量:這應該爲您提供客戶端請求源自的IP地址。只要測試一下,看看它是否允許,如果不是,則顯示錯誤消息。

3

嘗試

if($_SERVER['REMOTE_ADDR'] != '212.100.232.111' && $_SERVER['REMOTE_ADDR'] != '212.100.232.112'){ 
die('No access'); 
} 
3

如果你想限制所有遊客某些IP地址,最簡單的/最快的方式會在你的web服務器,例如可以這樣做與Apache .htaccess,而不是在PHP中:

Order Deny,Allow 
Deny From All 
Allow From 1.2.3.4 
Allow From 5.6.7.8 
+0

不需要限制所有訪問者到某些IP – Santanu 2010-05-11 11:05:17