2012-08-05 81 views
1

爲了避免說我想阻止來自特定國家的訪問者,什麼是正確的方法來寫它?
我試過使用deny from ip
但這不是正確的做法。我怎樣才能阻止訪客按國家?(Htaccess)

+3

這是不100%可能,他們總是可以使用代理 – nico 2012-08-05 10:35:24

+1

這不是一個真正的編程問題,更是一個網絡問題。可能更適合[專業網站管理員](http://webmasters.stackexchange.com/)。 – 2012-08-07 11:01:41

回答

1

正確的方法是不使用htaccess,你可以做一些PHP cheking使用一個已經填充的表與ip間隔告訴你什麼時候間隔會影響到哪個國家。

編輯:

如果你想使用htacces,你必須寫一個deny from ip線爲一個國家的每一個IP地址範圍(如果你試圖阻止10個國家,例如,這可能會導致混亂,這就是爲什麼它是一個壞主意)。

+1

,而不是僅僅說不使用htaccess,如果你確實覺得這是一種糟糕的做事方式,那麼向OP解釋爲什麼你不應該使用'deny from ip'。 – 2012-08-05 10:38:39

0

您使用的任何方法都不會完全證明。用戶可以使用代理來使它們看起來與其實際位置不同的地理位置。如果阻止用戶從某些區域訪問您的網站至關重要,則您必須考慮認證的不同方法(不依賴於IP地址)。

0

使用Apache的.htaccess文件阻止特定網絡非常容易。例如,加入...

從221.140.10.0/24

拒絕..would阻擋從221.140.10.0 C類網絡的任何通信(AKA斜線-24)。

因此,阻止特定國家只是找出這些國家中的所有網絡,然後創建一系列如上所述的條目。

這個參考link可能會幫助你

0

,如果你是關注所有關於performance我會建議使用PHP擴展API。您可以使用PHP(C API)擴展每秒獲得700萬次查詢。已知htaccess有性能副作用。

我描述瞭如何編譯擴展,以及如何使用內存數據庫的數據庫在PHP中通過限制國家ISO-3316 2個字符的代碼在這裏:

Intro to Maxmind GeoLite2 with Kohana PHP

Geolocate IP Address

相關問題