Пример #1
0
 protected static function getRemoteAddress()
 {
     $remoteAddr = infraRequestUtils::getIpFromHttpHeader('HTTP_X_FORWARDED_FOR', false);
     if (!$remoteAddr) {
         $remoteAddr = $_SERVER['REMOTE_ADDR'];
     }
     return $remoteAddr;
 }
Пример #2
0
 public function getFieldValue(kScope $scope)
 {
     if ($this->getHttpHeader() || $this->getAcceptInternalIps()) {
         kApiCache::addExtraField(array("type" => kApiCache::ECF_IP, kApiCache::ECFD_IP_HTTP_HEADER => $this->getHttpHeader(), kApiCache::ECFD_IP_ACCEPT_INTERNAL_IPS => $this->getAcceptInternalIps()), kApiCache::COND_IP_RANGE, $this->getStringValues($scope));
         return infraRequestUtils::getIpFromHttpHeader($this->getHttpHeader(), $this->getAcceptInternalIps(), true);
     }
     kApiCache::addExtraField(kApiCache::ECF_IP, kApiCache::COND_IP_RANGE, $this->getStringValues($scope));
     return $scope->getIp();
 }
Пример #3
0
 protected function getFieldValues($extraField)
 {
     switch (self::getExtraFieldType($extraField)) {
         case self::ECF_REFERRER:
             $values = array();
             // a request can theoritically have more than one referrer, in case of several baseEntry.getContextData calls in a single multirequest
             foreach ($this->_referrers as $referrer) {
                 $values[] = $referrer;
             }
             return $values;
         case self::ECF_USER_AGENT:
             if (isset($_SERVER['HTTP_USER_AGENT'])) {
                 return array($_SERVER['HTTP_USER_AGENT']);
             }
             break;
         case self::ECF_COUNTRY:
             return array(self::getCountry());
         case self::ECF_COORDINATES:
             return array(self::getCoordinates());
         case self::ECF_IP:
             if (is_array($extraField)) {
                 return array(infraRequestUtils::getIpFromHttpHeader($extraField[self::ECFD_IP_HTTP_HEADER], $extraField[self::ECFD_IP_ACCEPT_INTERNAL_IPS], true));
             }
             return array(infraRequestUtils::getRemoteAddress());
     }
     return array();
 }