2016-02-13 65 views
0

我试图使用Laravel 5.2获取客户端IP中的Amazon EC2/Nginx的

这是不敏感的信息获取客户端的IP,所以我真的不关心IP欺骗。

我尝试这种在我的模型脚本:

if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR']) { 
    $clientIpAddress = $_SERVER['HTTP_X_FORWARDED_FOR']; 
} else { 
    $clientIpAddress = $_SERVER['REMOTE_ADDR']; 
} 

但是当我运行PHP的工匠迁移,我得到错误

Undefined index: HTTP_X_FORWARDED_FOR 

Undefined index: REMOTE_ADDR 

但是,当我运行:

<?php dd($_SERVER); ?> 

我得到

"SERVER_ADDR" => "10.0.1.194" 
"REMOTE_PORT" => "38151" 
"REMOTE_ADDR" => "201.141.124.254" 

我不明白!

回答

0

这只是因为你在CLI中运行这个(你使用控制台来运行迁移)。

在CLI模式下的PHP有另一个$ _SERVER并且没有REMOTE_ADDR键。

+0

那么应该怎么修复? –

+0

在适当的环境下运行这个脚本 – aeryaguzov

+0

我不明白,什么是适当的环境?我知道运行迁移的唯一方法是通过ssh –