protected static function getRemoteAddress() { $remoteAddr = infraRequestUtils::getIpFromHttpHeader('HTTP_X_FORWARDED_FOR', false); if (!$remoteAddr) { $remoteAddr = $_SERVER['REMOTE_ADDR']; } return $remoteAddr; }
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(); }
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(); }