PHP - Laravel - 自作クラス - IP アドレス取得

 
1. 概要
2. 自前で作る

1. 概要

 「PHP」で、アクセス元の IP アドレスを見るのは、基本は

$_SERVER['REMOTE_ADDR']
 なわけですが、「Laravel」の場合

\Request::ip()
 で、とってくることもできます。  だがしかし
しかし、上記の方法では、リバースプロシキ下などの環境では、サーバーのIPアドレスを取得してしまい、クライアントのグローバルIPアドレスを取得しません。
 といことらしいのだ。  「リバースプロキシ」・・・わたしは、ようわかっていません。  「リバースプロキシ - Wikipedia」を参考にしてください。  本ページは、下記のサイトを参考にさせていただきました。
LaravelでIPアドレスを取得する

2. 自前で作る設定

 下記のような、ものをつくって、使えばいいのだそうな(参考サイト、まるパクリ)。

public function getIp()
{
    foreach (array('HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR') as $key)
    {
        if (array_key_exists($key, $_SERVER) === true)
        {
            foreach (explode(',', $_SERVER[$key]) as $ip)
            {
                $ip = trim($ip); 					// just to be safe

                if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false)
                {
                    return $ip;
                }
            }
        }
    }
}