2012-08-05 91 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

相关问题