ELB経由でない場合に、現在ページをみているユーザーのIPを取得する場合 下記の定義済み変数で取得することができます。
1
$_SERVER['REMOTE_ADDR'];
公式 見ながらvar_dump($_SERVER);
すると、勉強になります。
■ELB経由の場合
ELBを設定している場合に、上記の方法で設定すると、 プロキシサーバのIPアドレス(ELBのIP)が格納されるため、 クライントのページを見ているユーザーのIPが取得出来ない。
その場合、以下でクライントのページを見ているユーザーのIPがセットされる。
1
$_SERVER['HTTP_X_FORWARDED_FOR'];
最後に、実装したサンプルをドン!
1
2
3
4
5
$value = $_SERVER['REMOTE_ADDR'];
// For ELB
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$value = $_SERVER['HTTP_X_FORWARDED_FOR'];
}