• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/service/geoip/sypexgeo.php
  • Класс: BitrixMainServiceGeoIpSypexGeo
  • Вызов: SypexGeo::sendRequest
protected function sendRequest($ip, $key)
{
	$result = new MainResult();
	$httpClient = $this->getHttpClient();
	$url = 'http://api.sypexgeo.net/';

	if($key <> '')
		$url .= $key.'/';

	$url .= "json/".$ip;

	$httpRes = $httpClient->get($url);
	$errors = $httpClient->getError();

	if (!$httpRes && !empty($errors))
	{
		$strError = "";

		foreach($errors as $errorCode => $errMes)
			$strError .= $errorCode.": ".$errMes;

		$result->addError(new Error($strError));
	}
	else
	{
		$status = $httpClient->getStatus();

		if ($status != 200)
		{
			$result->addError(new Error('Sypexgeo.net http status: '.$status));
		}
		else
		{
			$arRes = json_decode($httpRes, true);

			if(is_array($arRes))
			{
				if(mb_strtolower(SITE_CHARSET) != 'utf-8')
					$arRes = Encoding::convertEncoding($arRes, 'UTF-8', SITE_CHARSET);

				$result->setData($arRes);
			}
			else
			{
				$result->addError(new Error('Can't decode json result'));
			}
		}
	}

	return $result;
}