[PHP] Proxyサーバー経由のアクセス元IPアドレスを取得する

$_SERVER配列にセットされる情報は、Proxyサーバーを経由するかしないかで若干変わってくる。

Proxyサーバーを経由しない場合

  • $_SERVER[‘REMOTE_ADDR’] – アクセス元のIPアドレス
  • $_SERVER[‘SERVER_ADDR’] – WebサーバーのIPアドレス

しかし、Proxyサーバーを経由する場合

  • $_SERVER[‘HTTP_X_FORWARDED_FOR’] – アクセス元のIPアドレス
  • $_SERVER[‘REMOTE_ADDR’] – ProxyサーバーのIPアドレス
  • $_SERVER[‘SERVER_ADDR’] – WebサーバーのIPアドレス

以下に、現在利用しているサーバー(Nginx)における$_SERVER配列をダンプしておく。