【これだけ】PHPでIPアドレスを取得する方法【現役エンジニアが解説】

PROGRAM

今回は、PHPでIPアドレスを取得する方法について、クライアントとサーバの場合に分け、簡単に解説していきます。

クライアントのIPアドレスを取得する方法

PHPではクライアントのIPアドレスを取得することができます。

スーパーグローバルの$_SERVERの連想配列の変数にはIPアドレスの情報が入っているため、これを利用します。

$_SERVER['REMOTE_ADDR']

クライアントのIPアドレスは、$_SERVERの中のREMOTE_ADDRというキーで格納されているため、上記のコードのように取得します。

サーバのIPアドレスを取得する方法

PHPではサーバのIPアドレスも$_SERVERの中に入っています。

サーバのIPアドレスはSERVER_ADDRのキーで参照することで取得できます。

$_SERVER['SERVER_ADDR']

ただし、上記のコードのようにSERVER_ADDRで取得できるIPアドレスは、あくまでプライベートIPアドレスであって、グローバルIPアドレスではないことには留意すべきです。

IPアドレスが取得できない場合

REMOTE_ADDRのキーでは、クライアントのIPアドレスが取得できない場合があります。

例えば、サーバ側でロードバランサーやリバースプロキシサーバを利用していると、REMOTE_ADDRはそれらのIPアドレスとなってしまいます。

$_SERVER['HTTP_X_FORWARDED_FOR']

AWSのELB経由の環境等でクライアント端末のグローバルIPアドレスを取得したい場合は、上記のコードのように、HTTP_X_FORWARDED_FORのキーで参照することで取得可能です。