[英]Yii2: Yii::$app->request->queryParams Invalid argument supplied for foreach()
[英]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.