• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/service/geoip/manager.php
  • Класс: BitrixMainServiceGeoIpManager
  • Вызов: Manager::getRealIp
static function getRealIp()
{
	$ip = false;
	$xForwarded = Application::getInstance()->getContext()->getServer()->get('HTTP_X_FORWARDED_FOR');

	if (!empty($xForwarded))
	{
		$ips = explode (", ", $xForwarded);
		$fCount = count($ips);

		for ($i = 0; $i < $fCount; $i++)
		{
			if (!preg_match("/^(10|172\.16|192\.168)\./", $ips[$i]))
			{
				$ip = $ips[$i];
				break;
			}
		}
	}

	if(!$ip)
	{
		$ip = trim(Application::getInstance()->getContext()->getRequest()->getRemoteAddress());
	}

	return $ip;
}