【问题标题】:get Client IP in Amazon EC2 / Nginx在 Amazon EC2 / Nginx 中获取客户端 IP
【发布时间】:2016-02-13 13:57:17
【问题描述】:

我正在尝试使用 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  

Undefined index: REMOTE_ADDR

但是当我跑步时:

<?php dd($_SERVER); ?>

我明白了

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

不明白!!!

【问题讨论】:

    标签: php nginx amazon-ec2


    【解决方案1】:

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

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

    【讨论】:

    • 那么应该如何解决?
    • 在合适的环境中运行这个脚本
    • 我不明白,什么是正确的环境???我知道运行迁移的唯一方法是通过 ssh
    • 为什么您的迁移中有此代码?合适的环境是任何 Web 服务器 SAPI,例如,您可以在其中记录客户端 IP。
    • 此代码在我的用户模型中,而不是在迁移中。我会尝试将其移至助手!
    猜你喜欢
    • 2020-08-23
    • 2016-10-07
    • 2015-06-06
    • 2020-11-10
    • 1970-01-01
    • 1970-01-01
    • 2020-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多