阻止某些国家访问网站的最佳方法

Best way to block certain countries from access to website

我需要在某些国家/地区阻止某些人访问该网站,并在下面制作了以下脚本,但它的阻止效率不够。

不幸的是,我无法通过 CMS 访问 .htaccess 文件或 Apache 配置文件,因此我需要使用 Javascript 或类似的编码来解决它。

您对如何设置或改进下面的脚本有什么建议吗?

<script>
var langcodes = new Array("zh", "default");
var langredirects = new Array("/lang/{module_pagename}", "DEFAULT");
var languageinfo = navigator.language ? navigator.language : navigator.userLanguage;
var gotodefault = 1;
function redirectpage(dest) {
    if (window.location.replace)
       window.location.replace(dest);
    else
        window.location = dest;
}

for (i = 0; i < langcodes.length - 1; i++) {
    if (languageinfo.substr(0, 2) == langcodes[i]) {
        redirectpage(langredirects[i]);
        gotodefault = 0;
        break;
    }
}
</script>

如果您使用 PHP,则使用 IP 地理定位数据库(有些是免费的)和 $_SERVER["REMOTE_ADDR"] 来获取访问者的 IP 地址。

http://www.maxmind.com/app/geolitecity 是商业版本的免费(不太准确)版本。

更多详情请refer