簡體   English   中英

Yii2 Yii::$app->request->userIP 在 ELB 下沒有給出正確的 IP 地址

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

我無法在ELB內的 Yii2 應用程序中獲取用戶 IP 地址,但沒有 ELB 其工作正常。 我也試過下面的代碼

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

但這有時也會失敗,以下是錯誤

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.

如果有人建議我在 Yii2 中的任何解決方案會更好。

使用這個功能它會幫助你

  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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM