Как уже написали есть стандартное API для получения геоданных.
$geoLocationResult = \Bitrix\Main\Service\GeoIp\Manager::getDataResult('', "ru");
Это API получает данные с помощью обработчиков геоданных, которые доступны тут:
Настройки > Настройки продукта > Геолокация
Так же с помощью события onMainGeoIpHandlersBuildList можно добавить свои обработчики.
Можно настроить 2-3 обработчика геолокации для получения данных ( если не удастся получить данные от 1го будет вызван следующий ).