阻止/仅允许CIDR范围IPS的最佳和最快方法是什么(锁定/许可范围IP国家/地区)

时间:2014-01-16 13:28:27

标签: php .htaccess ip cidr

我只有在来自某个国家/地区时才需要授予用户访问权限,我目前使用PHP执行此操作,我将国家/地区的所有IP范围放入数组中,使用一个check_cidr函数检查IP是否为允许与否,我也有htaccess允许/拒绝的方法。

什么是最快和优化的重量和减少服务器上的CPU负载的方式?有一些国家的所有IP范围的官方和更新列表?

2 个答案:

答案 0 :(得分:2)

使用AllowDeny可能更快,因为它不需要运行脚本。需要读取htaccess文件,但只要它没有改变,就不需要其他任何东西了。如果将它们放在server / vhost配置而不是htaccess文件中,它的工作速度会更快。

至于分配区块,有几个地方可以谷歌:

答案 1 :(得分:1)

如果您对performance感到担忧,我建议您使用PHP Extension API。使用PHP(C API)扩展,您每秒可以获得超过700万次查询。

我将介绍如何编译扩展,以及如何使用PHP中的mmdb数据库在这里使用iso-3316双字符代码来允许或限制国家/地区:

Intro to Maxmind GeoLite2 with Kohana PHP

Geolocate IP Address