Использую сервис
https://wildx.ru/geoip
База часто обновляется, по тестам высокая достаточно точность определения и + не надо базу у себя хранить и обновлять постоянно. Вся инфо передается по API.
Не бесплатно, но и не дорого. Бесплатный сыр, только сами знаете где )