Создание сайтов на 1С Битрикс стало еще просто, используйте готовые шаблоны! Подключайте современные модули, делая ваш сайт еще эффективнее!
Например, парсер сайтов

GeoIp Api

Бесплатно
Модуль предоставляет api для определения местоположения по ip-адресу. Если ip-адрес не указан явно, то местоположение определяется по текущему ip пользователя. Для уменьшения количества запросов, информация о последнем ip-адресе сохраняется в куках.

В местоположение входят:
  • название города;
  • название страны на языке сайта;
  • iso-код страны
  • id страны в CMS 1С Битрикс (соответствуют id стран, возвращаемых функцией GetCountryArray)
  • название региона;
  • iso-код региона (опционально);
  • название района (опционально);
  • ширина и долгота;
  • диапазон ip-адресов (опционально).
В зависимости от выбранной службы, значения некоторых полей могут отсутствовать либо отображаться на английском языке. Для службы Sypex есть возможность указать необходимый язык 4-м параметром.

В обычном режиме решение предоставляет данные из первой службы, корректно вернувшей данные. Службы вызываются в следующем порядке:
  • ipgeobase.ru (IpGeoBase);
  • sypexgeo.net (Sypex);
  • freegeoip.net (FreeGeoIp). (отключена, т.к. свободный api был закрыт)
В случае необходимости, можно явно указать необходимую службу.


Пример использования:
use Bitrix\Main\Loader,

    Rover\GeoIp\Location;



    if (Loader::includeModule('rover.geoip')){

        try{

            echo 'ваш ip: ' . Location::getCurIp() . '<br><br>'; // текущий ip

           

            $location = Location::getInstance('5.255.255.88'); // yandex.ru

            if ($location->isSuccess()){

                echo 'ip: '                 . $location->getIp() . '<br>';          // 5.255.255.88

                echo 'город: '              . $location->getCityName() . '<br>';        // Москва

                echo 'iso-код страны: '     . $location->getCountryCode() . '<br>';     // RU

                echo 'название страны: '    . $location->getCountryName() . '<br>'; // Россия

                echo 'id страны в Битриксе: '    . $location->getCountryId() . '<br>'; // 1

                echo 'регион: '             . $location->getRegionName() . '<br>';      // Москва

                echo 'iso-код региона: '    . $location->getRegionCode() . '<br>';      //

                echo 'округ: '              . $location->getDistrict() . '<br>';    // Центральный федеральный округ

                echo 'широта: '             . $location->getLat() . '<br>';         // 55.755787

                echo 'долгота: '            . $location->getLng() . '<br>';         // 37.617634

                echo 'диапазон адресов: '   . $location->getInetnum() . '<br>';     // 5.255.252.0 - 5.255.255.255

                echo 'сервис: '             . $location->getService() . '<br><br>';     // IpGeoBase

           } else {

                echo 'ошибка: '             . $location->getError() . '<br><br>';

           }



           $location->setLanguage('en');

           $location->reload('173.194.222.94'); // google.ru

   

           if ($location->isSuccess()){

               echo 'ip: '                 . $location->getIp() . '<br>';          // 173.194.222.94

               echo 'город: '              . $location->getCityName() . '<br>';        // Mountain View

               echo 'iso-код страны: '     . $location->getCountryCode() . '<br>';     // US

               echo 'название страны: '    . $location->getCountryName() . '<br>'; // USA

               echo 'id страны в Битриксе: '    . $location->getCountryId() . '<br>'; // 122

               echo 'регион: '             . $location->getRegionName() . '<br>';      // California

               echo 'iso-код региона: '    . $location->getRegionCode() . '<br>';      // US-CA

               echo 'округ: '              . $location->getDistrict() . '<br>';    // 

               echo 'широта: '             . $location->getLat() . '<br>';         // 37.38605

               echo 'долгота: '            . $location->getLng() . '<br>';         // -122.08385

               echo 'диапазон адресов: '   . $location->getInetnum() . '<br>';     //

               echo 'сервис: '             . $location->getService() . '<br>';     // Sypex

           } else {                

               echo 'ошибка: '             . $location->getError() . '<br><br>';

           }

       } catch (\Exception $e) {

           echo $e->getMessage();

       }

} else 

       echo 'Модуль GeoIp Api не установлен';


Указание сервера для Sypex
\Bitrix\Main\Config\Option::set('rover.geoip', 'sypex-server', 'ru3.sxgeo.city');
Список всех серверов https://sypexgeo.net/ru/api/


Компоненты

Указатель местоположения пользователей (rover:geoip.user.location)

Позволяет установить местоположение для пользователей на основе данных из модуля. Местоположение определяется по ip-адресу, с которого они впервые зашли на сайт.


Полное описание api на гитхабе проекта: https://github.com/pavelshulaev/geoip

Требования
  • php версии 5.4 или выше
  • установленная на хостинге библиотека CURL
  • модуль «Веб-аналитика» (для работы компонента rover:geoip.user.location)
Если вам нужен более расширенный функционал и более «пользовательский» интерфейс с похожим функционалом, рекомендую решение «Улучшенный выбор местоположения с определением по IP, замена контента в зависимости от города».

После стандартной установки модуля, его api будет доступно для ваших проектов.



С api можно ознакомится здесь: https://github.com/pavelshulaev/geoip



Требования

  • php версии 5.4 или выше

  • установленная на хостинге библиотека CURL

  • модуль «Веб-аналитика» (для работы компонента rover:geoip.user.location)

По всем вопросам, предложениям и ошибкам вы можете связаться со мной через электропочту rover.webdev@gmail.com или сайт https://rover-it.me.

x