Кто-то рекомендовал cdn,
И точно ли он определяет, кому принадлежит IP-адрес?
Как это делается?
Есть ли лучшее решение?
Кто-то рекомендовал cdn,
И точно ли он определяет, кому принадлежит IP-адрес?
Как это делается?
Есть ли лучшее решение?
Попробуйте подключиться к сервису pidgets geoip (он использует базу данных maxmind)
Не существует фиксированных правил, которые могли бы сказать вам, какой IP принадлежит какой стране. Это зависит от того, какая компания владеет диапазоном IP-адресов в данный момент, и поэтому может меняться по мере смены владельца. Поэтому вам необходимо либо самостоятельно поддерживать актуальную базу данных о том, какая компания владеет каким диапазоном IP-адресов, либо арендовать доступ к такой базе данных.
Не уверен, какая связь между CDN и поиском ip/geo. Однако, если вы используете cdn для доставки контента, они будут предоставлять отчеты о том, откуда приходят пользователи. См. мой сообщение в блоге. для получения дополнительной информации о CDN.
Что касается поиска страны пользователя по его IP. Есть несколько способов сделать это. Это довольно аккуратно. Я бы, конечно, сказал, что это точно «достаточно». Если вы просто хотите найти страну нескольких IP-адресов. Зайдите на такой сайт, как dnsstuff.com, и у них есть онлайн-инструменты для этого. Если вы хотите сделать это программно, используйте такой сервис, как Maxmind или digital envoy. Maxmind - гораздо более дешевый вариант.
Вы можете сделать запрос GET к этому URL-адресу: https://api.teletext.io/api/v1/geo-ip, и он ответит некоторой информацией о стране в формате JSON.
Если вы хотите реализовать это самостоятельно: я настроил это с помощью AWS Cloudfront, Cloudfront добавляет заголовок (Cloudfront-Viewer-Country) к вашему запросу, прежде чем перенаправить его на исходный сервер, который вы можете использовать. Обязательно внесите заголовок в белый список в дистрибутиве Cloudfront.