简体   繁体   English

Yii2 Yii::$app->request->userIP 在 ELB 下没有给出正确的 IP 地址

[英]Yii2 Yii::$app->request->userIP is not giving right IP address under ELB

I am unable to get User IP address in Yii2 application inside ELB but without ELB its working fine.我无法在ELB内的 Yii2 应用程序中获取用户 IP 地址,但没有 ELB 其工作正常。 I have also try below code我也试过下面的代码

if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
   $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}

but this is also failed sometime, below is the error但这有时也会失败,以下是错误

ERROR 1 => The value "223.190.123.220, 66.102.6.83" is not a valid IP address.
ERROR 2 => The value "2402:3a80:10d3:e19f:e7e1:8c35:fb4a:b49c, 66.102.6.89" is not a valid IP address.

It will be better if someone suggest me any solution within Yii2.如果有人建议我在 Yii2 中的任何解决方案会更好。

use this function it will help you使用这个功能它会帮助你

  public function RealIP() {
    $ip = false;
    $seq = array('HTTP_CLIENT_IP',
        'HTTP_X_FORWARDED_FOR'
        , 'HTTP_X_FORWARDED'
        , 'HTTP_X_CLUSTER_CLIENT_IP'
        , 'HTTP_FORWARDED_FOR'
        , 'HTTP_FORWARDED'
        , 'REMOTE_ADDR');

    foreach ($seq as $key) {
        if (array_key_exists($key, $_SERVER) === true) {
            foreach (explode(',', $_SERVER[$key]) as $ip) {
                if (filter_var($ip, FILTER_VALIDATE_IP) !== false) {
                    return $ip;
                }
            }
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Yii2:Yii :: $ app-> request-> queryParams为foreach()提供的参数无效 - Yii2: Yii::$app->request->queryParams Invalid argument supplied for foreach() Yii2 $ model-> load(Yii :: $ app-> request-> post())不会从表单加载数据 - Yii2 $model->load(Yii::$app->request->post()) does not load data from form Yii2 在 `$this->modelClass::find()->andWhere(['post_id' => \\Yii::$app->request->get('postId')])` 上出现语法错误,这是一个有效条款 - Yii2 Getting a Syntax error on ` $this->modelClass::find()->andWhere(['post_id' => \Yii::$app->request->get('postId')])` which is a valid clause Yii 2-使用$ _POST和Yii :: $ app-> request-> post()之间的区别 - Yii 2 - Difference between using $_POST and Yii::$app->request->post() yii2 chang YII:$ app-> user到Yii :: $ app-> admin? - yii2 chang YII:$app->user to Yii::$app->admin? Yii 2 - 使用Yii :: $ app-> request和Yii :: $ app-> getRequest()之间的区别,建议使用? - Yii 2 - Difference between using Yii::$app->request and Yii::$app->getRequest(), which is Recommended to use? 如何覆盖Yii2 $ app-> user-> identity - How to Override Yii2 $app->user->identity 如何在Yii2中正确设置网址 - How to make right url address in Yii2 Yii2登录。 Yii::$app->user->login($user, 0) 不保存 - Yii2 login. Yii::$app->user->login($user, 0) doesnt save Yii2 - 如何从Yii :: $ app-> user获取当前用户名或名称? - Yii2 - How to get the current username or name from Yii::$app->user?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM