2014-02-17 37 views
0

我希望laravel在訪問者來自127.0.0.1時將環境設置爲「本地」,但是請求對象在引導程序/啓動時尚不可用。有沒有內置的方式來做到這一點,或者我將不得不直接訪問$_SERVER['HTTP_CLIENT_IP']如何在Laravel中通過ip選擇環境

回答

0

這種事情應該工作。如果這是

$env = $app->detectEnvironment(function() { 
    if($_SERVER['REMOTE_ADDR'] == '127.0.0.1') { return 'local'; } 
}); 

換出REMOTE_ADDRHTTP_CLIENT_IP您的基礎架構是如何工作的。

如果您想使用請求對象,您可以在App::before篩選器中執行此操作,但我不確定您是否可以在運行時更改環境。

2

最近通過$ app-> detectEnvironment()檢測到基於IP的環境。我相信它在4.1,因爲它們不是很安全。例如,用戶可以欺騙他們的IP地址,從而潛在地訪問您不希望他們訪問的站點區域 - 或獲取安全的調試信息。

我知道你問的IP解決方案,但用於檢測環境中的內置的方法應該是這樣的:

$env = $app->detectEnvironment(array(
    'local' => array('MYHOSTNAME'), 
)); 

如果從本地主機工作的多個系統/主機名,只需將它們添加到陣列。這將使事情遠比試圖使IP地址工作更安全。