Подтвердить что ты не робот

Как получить пользовательскую страну для HTTP-запроса в Бэкэнд?

Я пытаюсь получить страну, в которую пользователь отправляет запрос на мой сервер.

До сих пор я нашел эти решения:

https://github.com/fiorix/freegeoip

https://github.com/maxmind/GeoIP2-java

Эти решения используют базу данных MaxMind GeoIP2 Country Database, у которой есть лицензия, и для этого конкретного проекта у меня есть ограничение на Библиотеки (юридические аспекты из-за бизнеса)

Я нашел несколько тем, говорящих о том, что Google API может предоставить эту услугу, но это меня не интересует, поскольку я хочу решение, которое я могу разместить самостоятельно, и оно реализовано с использованием Java или Kotlin.

Знает ли кто-нибудь решение, отличное от того, которое упомянуто (которое работает на бэкэнд)?

4b9b3361

Ответ 1

Не уверен, что с точки зрения архитектуры это хорошее решение, но вы можете установить инструмент командной строки на свой серверный сервер и использовать его.

Например: http://manpages.ubuntu.com/manpages/zesty/en/man1/geoiplookup.1.html

Также есть бесплатный веб-API, который вы можете использовать, посмотрите здесь

Ответ 2

Я закодировал небольшой сервис (требуется рефакторинг), который возвращает страну на основе данных, полученных мной из http://ipverse.net/

Это должна быть бесплатная лицензия, но исправьте меня, если я ошибаюсь. Согласно веб-сайту, данные предоставляются пятью большими РИР.

Веб-сайт обновляет свои данные ~ 5 утра. Задача Cron, которая обновляет IP-блоки, запланирована на 6 утра. Я думаю, данные должны быть точными.

https://github.com/jaecktec/LicenseFreeGeoIpLocation

Не стесняйтесь добавлять мнения/предложения.