web-dev-qa-db-ja.com

zendフレームワークでユーザーIPアドレスを取得する

Zend-framework 2でクライアントのIPアドレスを取得するにはどうすればよいですか?プレーンPHPでは$ _SERVER ['REMOTE_ADDR']になりますが、スマートZend関数でしょうか。

何か案は?

17
lolalola

ZF2のリクエストオブジェクトには、getServerという名前のメソッドがあります。このメソッドは、\Zend\Stdlib\ParametersInterfaceを実装するオブジェクトを返します。この特定のオブジェクトを使用すると、$ _ SERVER変数から何でも取得できます。

メソッドとオブジェクトの使用方法の2つの例を次に示します。

<?php 
    // Getting the entire params object
    $servParam = $request->getServer();
    $remoteAddr = $servParam->get('REMOTE_ADDR');

    // Getting specific variable
    $remoteAddr = $request->getServer('REMOTE_ADDR');
?>
28
Stoyan Dimov

_Zend\Http\PhpEnvironment\RemoteAddress_クラスを使用して、クライアントのIPアドレスを取得できます。

_$remote = new Zend\Http\PhpEnvironment\RemoteAddress;
echo $remote->getIpAddress();
_

http://framework.zend.com/apidoc/2.1/classes/Zend.Http.PhpEnvironment.RemoteAddress.html を参照してください。

注:

ヘッダー_HTTP_X_FORWARDED_FOR_の検査を有効にするには、setUseProxy()をオンにします。

_$remote->setUseProxy()->getIpAddress();
_
29
radnan