

AWSロードバランサー経由でのクライアントのipアドレスを下記方法で取得しています。

[code]

    $ips = isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : false;
    if ($ips) {
        $ip = explode(',', $ips)[0];
    }
    
[/code]

この `$ip` は99%以上の確率で正しい値が取得出来ているのですが、1%弱の確率で下記形式が入っていることがあります。

[code]

    xxxxxx xxx.xxx.xxx.xxx 
    // xは全て数値、(6桁の数字)半角スペース(ipアドレス)
    
[/code]

6桁の数字は特に規則性も無いようで、00....から始まるものもあれば、90....の様なものもあります。（しいてあげれば、0.....で始まるものと9.....で始まるものが多い模様）  
また、この時のipアドレスは172.31.xxx.xxの様なプライベートアドレスになっています。

これはどのような状況なのか、わかる方がいらっしゃいましたら教えて頂けますでしょうか。  
また、この6桁の数字は何ですか？  
この時にクライアントのipアドレスは取得出来ますか？  
よろしくお願いします。


CC BY-SA 3.0
2016-09-21T16:52:08.537
29037
2017-05-27T13:27:19.010
18874
question
php aws
HTTP_X_FORWARDED_FORに時々入る値


<http://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/classic/x-forwarded-
headers.html>  
X-Forwarded-Forが既に設定されていた場合、カンマ区切りの前についている値がそれなので、X-Forwarded-Forにxxxxxx
xxx.xxx.xxx.xxxが指定されていたということでしょう。  
これは信用できないと書かれているので、最後の値を見た方がいいかもしれません。


CC BY-SA 3.0
2017-05-27T13:27:19.010
35072
2017-05-27T13:27:19.010
2605
29037
answer