[英]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.