Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 4 如何在Laravel中通过ip选择环境_Laravel 4_Ip Address - Fatal编程技术网

Laravel 4 如何在Laravel中通过ip选择环境

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'; } })

当访问者来自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'; }
});
如果您的基础架构是这样工作的,请将
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地址工作更安全