Laravel 4 如何在Laravel中通过ip选择环境
当访问者来自127.0.0.1时,我希望laravel将环境设置为“local”,但是请求对象在bootstrap/start中还不可用。有没有什么内置的方法可以做到这一点,或者我必须直接访问Laravel 4 如何在Laravel中通过ip选择环境,laravel-4,ip-address,Laravel 4,Ip Address,当访问者来自127.0.0.1时,我希望laravel将环境设置为“local”,但是请求对象在bootstrap/start中还不可用。有没有什么内置的方法可以做到这一点,或者我必须直接访问$\u服务器['HTTP\u CLIENT\u IP']?这种方法应该可以 $env = $app->detectEnvironment(function() { if($_SERVER['REMOTE_ADDR'] == '127.0.0.1') { return 'local'; } })
$\u服务器['HTTP\u CLIENT\u IP']
?这种方法应该可以
$env = $app->detectEnvironment(function() {
if($_SERVER['REMOTE_ADDR'] == '127.0.0.1') { return 'local'; }
});
如果您的基础架构是这样工作的,请将REMOTE\u ADDR
替换为HTTP\u CLIENT\u IP
如果您想使用请求对象,您可能可以在
App::before
过滤器中完成,但我不确定您是否可以在运行时更改环境。最近删除了通过$App->detectEnvironment()进行的基于IP的环境检测。我相信是在4.1中,因为他们不是很安全。用户可以伪造他们的IP地址,从而有可能访问您不希望他们访问的站点区域,或者获取安全的调试信息
我知道您要求IP解决方案,但用于检测环境的内置方法应如下所示:
$env = $app->detectEnvironment(array(
'local' => array('MYHOSTNAME'),
));
如果有多个系统/主机名在本地主机上工作,只需将它们添加到阵列中即可。这将使事情比试图使IP地址工作更安全