如何限制页面中的访问? Symfony2的

时间:2015-07-03 04:01:21

标签: php symfony restrict

我的问题是:我需要限制访问来自其他国家/地区的人员。我这样做,日本没有人可以访问我的网站?

2 个答案:

答案 0 :(得分:1)

如果IP来自日本,您必须检测用户的IP并将用户重定向到错误页面。

这里有一个很好的检测用户IP的捆绑包:

https://github.com/aferrandini/Maxmind-GeoIp

要立即阻止所有页面,您可以在定义onKernelRequest方法的Listner中进行IP检查。这里可以看到一个例子 http://symfony.com/doc/2.3/cookbook/service_container/event_listener.html#request-events-checking-types

不要忘记在每个包中可用的services.yml文件中注册监听器。

检测日语用户的另一种方法可能是解析从浏览器收到的用户代理并解析它,它可能包含“ja”或“JP”作为语言标记。

答案 1 :(得分:0)

使用http://ipinfo.io/ API。代码如下所示:(PHP)

$allowed_countries = array("IN", "US", ...);
$country = file_get_contents("http://ipinfo.io/{$_SERVER['REMOTE_ADDR']}/country");
if(!in_array($country, $allowed_countries)) 
{
   echo 'Restricted'; //or any error message.
}