[PHP]クライアントのIPを取得する方法:Cloudfront配下など

Cloudfrontなどをサイトの前にかましていると$_SERVER[‘REMOTE_ADDR’]ではクライアントIPは取得できない

HTTP_X_FORWARDED_FORなどに値が入っているので、それぞれ値が入っているところを探して取得する

$ipaddress = '';
if (isset($_SERVER['HTTP_CLIENT_IP']))
 $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
else if(isset($_SERVER['REMOTE_ADDR']))
 $ipaddress = $_SERVER['REMOTE_ADDR'];
else if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
 $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
else if(isset($_SERVER['HTTP_X_FORWARDED']))
 $ipaddress = $_SERVER['HTTP_X_FORWARDED'];
else if(isset($_SERVER['HTTP_FORWARDED_FOR']))
 $ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
else if(isset($_SERVER['HTTP_FORWARDED']))
 $ipaddress = $_SERVER['HTTP_FORWARDED'];
else
 $ipaddress = 'UNKNOWN';

return $ipaddress;

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です