Php 在AmazonEC2/Nginx中获取客户端IP

Php 在AmazonEC2/Nginx中获取客户端IP,php,nginx,amazon-ec2,Php,Nginx,Amazon Ec2,我正在尝试使用Laravel 5.2获取客户端IP 这不是敏感信息,所以我并不真正关心IP欺骗 我在我的模型中尝试了这种脚本: if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR']) { $clientIpAddress = $_SERVER['HTTP_X_FORWARDED_FOR']; } else { $clientIpAddress = $_SERV

我正在尝试使用Laravel 5.2获取客户端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 artisan migrate时,会出现错误

Undefined index: HTTP_X_FORWARDED_FOR  

但当我跑步时:

<?php dd($_SERVER); ?>

我不明白

这仅仅是因为您在CLI中运行了它(您使用控制台来运行迁移)


CLI模式下的PHP有另一个$_服务器,并且没有远程地址键。

那么应该解决什么问题?在适当的环境中运行此脚本我不明白,什么是适当的环境???我所知道的运行迁移的唯一方法是通过sshw,为什么迁移中有这些代码?合适的env是任何web服务器SAPI,例如,您可以在其中记录客户端IP。此代码在我的用户模型中,而不是在迁移中。我将尝试将其移动到helper!
<?php dd($_SERVER); ?>
"SERVER_ADDR" => "10.0.1.194"
"REMOTE_PORT" => "38151"
"REMOTE_ADDR" => "201.141.124.254"