IPアドレスの取得方法
開発環境:CakePHP2.5.1
CakePHPでIPを取得するには、getClientIPやclientIpを使うと簡単に取得することができます。
ただし、共にIP偽装したアクセスに対しては対応出来ません。
その場合は素のPHPでシンプルに書くのがいいでしょう。
getClientIPの使い方
getClientIPはRequestHandlerにあるので、コンポーネントで呼び出して使います。
1 2 3 4 5 6 7 |
<?php public $components = array('RequestHandler'); public function index() { $ip = $this->RequestHandler->getClientIP(); } ?> |
clientIpの使い方
内部的にはgetClientIPと同じですが、呼び出す時にRequestHandlerを呼びださなくても良いので、こちらの方がラクですね。
1 2 3 4 5 |
<?php public function index() { $ip = $this->request->clientIp(); } ?> |
IP偽装に対応
ヘッダー情報でX-FORWARDED-FORやCLIENT-IPを偽装して送信されると、上記コードでは偽装されたIPが取得されます。
それでは問題ある場合には、$_SERVER[‘REMOTE_ADDR’]を使って処理するのが良いでしょう。
1 |
<?php $ip = $_SERVER['REMOTE_ADDR']; ?> |
柴田 篤志
最新記事 by 柴田 篤志 (全て見る)
- WordPressとCakePHPの共存 - 2014年10月22日
- サイトマップの作成方法 - 2014年10月12日
- INSERTしたIDを取得する - 2014年10月4日