当前位置: 首页>>代码示例>>PHP>>正文


PHP Request::getServerParams方法代码示例

本文整理汇总了PHP中TYPO3\Flow\Http\Request::getServerParams方法的典型用法代码示例。如果您正苦于以下问题:PHP Request::getServerParams方法的具体用法?PHP Request::getServerParams怎么用?PHP Request::getServerParams使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在TYPO3\Flow\Http\Request的用法示例。


在下文中一共展示了Request::getServerParams方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: getTrustedClientIpAddress

 /**
  * Get the most trusted client's IP address.
  *
  * This is the right-most address in the trusted client IP header, that is not a trusted proxy address.
  * If all proxies are trusted, this is the left-most address in the header.
  * If no proxies are trusted or no client IP header is trusted, this is the remote address of the machine
  * directly connected to the server.
  *
  * @return string|bool The most trusted client's IP address or FALSE if no remote address can be found
  */
 protected function getTrustedClientIpAddress(Request $request)
 {
     $server = $request->getServerParams();
     if (!isset($server['REMOTE_ADDR'])) {
         return false;
     }
     $ipAddress = $server['REMOTE_ADDR'];
     $trustedIpHeaders = $this->getTrustedProxyHeaderValues(self::HEADER_CLIENT_IP, $request);
     $trustedIpHeader = [];
     while ($trustedIpHeaders->valid()) {
         $trustedIpHeader = $trustedIpHeaders->current();
         if ($trustedIpHeader === null || $this->settings['proxies'] === []) {
             return $server['REMOTE_ADDR'];
         }
         $ipAddress = reset($trustedIpHeader);
         if (filter_var($ipAddress, FILTER_VALIDATE_IP, FILTER_FLAG_NO_RES_RANGE | FILTER_FLAG_NO_PRIV_RANGE) !== false) {
             break;
         }
         $trustedIpHeaders->next();
     }
     if ($this->settings['proxies'] === '*') {
         return $ipAddress;
     }
     $ipAddress = false;
     foreach (array_reverse($trustedIpHeader) as $headerIpAddress) {
         $portPosition = strpos($headerIpAddress, ':');
         $ipAddress = $portPosition !== false ? substr($headerIpAddress, 0, $portPosition) : $headerIpAddress;
         if (!$this->ipIsTrustedProxy($ipAddress)) {
             break;
         }
     }
     return $ipAddress;
 }
开发者ID:mkeitsch,项目名称:flow-development-collection,代码行数:43,代码来源:TrustedProxiesComponent.php


注:本文中的TYPO3\Flow\Http\Request::getServerParams方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。