阻止非英国访客访问我的网站

阻止非英国访客访问我的网站

我想阻止所有非英国访问者访问我的网站,有人知道我该如何实现吗?

我认为我需要一个 .htaccess 文件,其中列出所有 IP 以及拒绝命令,但我如何找到要允许的最新英国 IP 列表。

这样做的原因是为了尝试减少我的网站上的垃圾邮件数量。

感谢您的帮助

答案1

查看 GeoIP 数据库。

但我认为屏蔽所有非英国访客并不是最好的办法。想象一下,您的一位用户在英国境外度假,并想访问您的网站。

看看降低Spamhaus 的列表。它包含所有垃圾邮件制造者拥有的网络。我在防火墙规则中使用该列表,并将托管博客上的垃圾邮件减少了约 98%。

答案2

我想到两个解决方案。

如果您的网站是动态的,您可以在每次请求中检查与访问者 IP 相关的国家/地区,例如使用 Maxmind GeoIP 数据库 (http://www.maxmind.com/app/geolitecountry)如果用户不是来自英国,则显示 404 或任何您想要的内容。

另一种解决方案是仅允许特定 IP 范围内的用户访问网站。您必须获取英国的 IP 范围,然后将其添加到 .htaccess 文件中的允许指令中。可以在此处获取范围(http://www.ipaddresslocation.org/ip_ranges/get_ranges.php

答案3

你想要做的事情通常被称为地理位置

这个问题StackOverflow 上有一些有用的答案。

答案4

不确定地理定位是否是一个完整的解决方案 - 也不确定是否应该使用 .htaccess 阻止访问

有人在您的系统上发布垃圾邮件意味着您在那里运行了一些自定义代码 - 并且据我所知,没有简单的方法可以直接从 .htaccess 文件进行有效查找。

当然,使用地理定位可能会有所帮助 - 但你只需要控制对允许发布内容的功能的访问。有一个免费的数据库,你可以运行它的本地副本可在此处获得

如果是我,我会将其作为评分系统的一部分,同时结合

1)自我审核的帖子 - 要求用户提供电子邮件地址 - 当他们发布帖子时,除非他们点击您通过电子邮件发送给他们的链接,否则不会发布

2) 管理员审核 - 也许您没有时间审核每篇帖子 - 但是如何检查特定用户的前 N ​​篇帖子呢?

3)使用spamassassin识别垃圾帖子(注意:您捕获的垃圾帖子越多(但显然不能发布),效果就越好)

相关内容