在zend框架中获取用户IP地址[已关闭]

2022-08-30 21:42:38

如何在Zend框架2中获取客户端的IP地址?在普通的PHP中,这将是_SERVER美元['REMOTE_ADDR'],但也许聪明的Zend函数?

有什么想法吗?


答案 1

可以使用该类获取客户端 IP 地址。Zend\Http\PhpEnvironment\RemoteAddress

$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_FORsetUseProxy()

$remote->setUseProxy()->getIpAddress();

答案 2

ZF2 中的请求对象具有名为 的方法。此方法返回一个实现 的对象。有了这个特定的对象,你可以从 $_SERVER 变量中获取任何东西。getServer\Zend\Stdlib\ParametersInterface

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

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

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

推荐