在zend框架中获取用户IP地址

时间:2013-04-09 18:33:28

标签: php zend-framework2

如何在Zend-framework 2中获取客户端的IP地址?在普通的PHP中它是$ _SERVER ['REMOTE_ADDR'],但也许是智能的Zend函数?

有什么想法吗?

3 个答案:

答案 0 :(得分:28)

ZF2中的请求对象具有名为getServer的方法。此方法返回实现\Zend\Stdlib\ParametersInterface的对象。使用此特定对象,您可以从$ _SERVER变量中获取任何内容。

以下是如何使用方法和对象的两个示例:

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

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

答案 1 :(得分:27)

您可以使用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();

答案 2 :(得分:-13)

大秘密:

$_SERVER['REMOTE_ADDR']

不要重新发明已经很容易的东西!