我被要求阻止訪問某個網站。 有兩種方法,我知道我可以選擇 - 1.在Apache的水平(這樣的工具:http://www.ip2location.com/blockvisitorsbycountry.aspx),其生成與IP範圍列表很長的htaccess文件。 我知道的另一種方式是使用PHP(無論是本地數據庫,遠程web服務還是僅僅像htaccess一樣的列表)。 我的問題是什麼更有效 - 我認爲,如果我使用apache,它比PHP更快,但每個頁面都被訪問。 如果我使用PHP,我可以做一次並保存在會話中。 什麼是更有效的方法? 謝謝!阻止國家的最佳途徑
回答
您不必填寫你的.htaccess
文件與成千上萬的IP地址的行。相反,你可以安裝一個C庫和一個Apache模塊來完成繁重的工作。
MaxMind提供了通常用於IP查找一個流行的免費數據庫。他們的GeoLite2是一個免費的數據庫,每月更新一次。如果您需要的話,他們的付費產品更準確,更新頻率更高。
通過使用此數據庫並安裝它們的各種APIs
之一,您可以在您認爲合適處理流量。
出於我們的目的,您需要安裝C庫API以及Apache模塊。一旦那些正在和啓用,將數據庫文件的地方,然後你就可以建立與代碼的國家集團,因爲這在簡單的.htaccess
或Apache config file
:
MaxMindDBEnable On
MaxMindDBFile DB /path/to/GeoIP/GeoLite2-Country.mmdb
MaxMindDBEnv MM_COUNTRY_CODE DB/country/iso_code
SetEnvIf MM_COUNTRY_CODE ^(RU|DE|FR) BlockCountry
Deny from env=BlockCountry
這將阻止俄羅斯,德國和法國。在這裏獲取雙字母ISO國家代碼。
這將超過您的服務器更好不必解析數以千計的文本行對.htaccess文件中的每個請求!
您確實需要高級訪問您的服務器上安裝該庫和模塊,所以這是對共享主機或者你沒有一個VPS這樣的訪問沒有好。
如果出於某種原因,您希望在文件夾級別使用特定的阻止規則,這也會起作用。
如果我可能會提出一個關於您的答案的問題 - 這是否意味着使用PHP +會話更有效?基本上我仍然會瀏覽大型數據庫,無論是在.htaccess文件還是在外部文件中。 謝謝 – Yanipan
看到他們是不同的方式來實現你要找的東西,但我想上面的答案是最適合我的,我用MAXMind DB,它真的很不錯 –
- 1. 獲取國際國家ISD電話代碼的最佳途徑
- 2. 從地址獲取城市,州和國家的最佳途徑
- 3. 阻止國家的最佳解決方案?
- 4. 最佳途徑
- 5. 最佳途徑
- 6. 最佳途徑
- 7. 最佳途徑
- 8. 最佳途徑?
- 9. 最佳途徑中的R
- 10. CustomViewData的最佳途徑?
- 11. .htaccess:阻止除一個國家以外的所有國家
- 12. 最佳途徑,像@author
- 13. API和Rails - 最佳途徑
- 14. 最佳途徑深入
- 15. 最佳途徑爲了
- 16. 最佳解決途徑
- 17. 最佳途徑2008年
- 18. VBA項目國際化的最佳途徑
- 19. 阻止支付寶付款的國家
- 20. 使用.htaccess阻止某個國家
- 21. iPhone中的彩信的最佳途徑
- 22. 依賴注入(DI)的最佳途徑
- 23. 分享數據的最佳途徑
- 24. 多線程UI的最佳途徑?
- 25. 發佈Java文件的最佳途徑
- 26. 翻譯網站的最佳途徑?
- 27. 完成任務的最佳途徑
- 28. XAML遊戲的最佳途徑
- 29. 備份項目的最佳途徑
- 30. 傅里葉變換的最佳途徑
清楚,有點意思,好事的瑣碎繞過 –
@Dagon - 我同意這不是做的最好的事情,這是很容易得到解決。 – Yanipan