Определить, находится ли пользователь мобильного приложения за прокси-сервером

#python #mobile #proxy #geolocation #gps

#python #Мобильный #прокси #геолокация #gps

Вопрос:

Я создаю мобильное приложение, которое требует знания местоположения пользователя при отправке данных или публикации. У нас есть опасения, если пользователи начнут использовать прокси-серверы. Существуют ли какие-либо решения / библиотеки python, которые можно включить в мобильное приложение для обнаружения пользователей, подделывающих свое местоположение?

Ответ №1:

Пользователи могут подделать свое местоположение, используя VPN. Прокси-серверы на самом деле используются по-другому.

Используйте API, который делает это. Вам нужен API в реальном времени, который вы можете вызывать через request него. Я использую абстрактный API, потому что он надежный и бесплатный: https://www.abstractapi.com/ip-geolocation-api однако вам нужно создать учетную запись, но это безболезненно.

 import requests

response = requests.get("https://ipgeolocation.abstractapi.com/v1/?api_key=YOUR_KEYamp;ip_address=THE_IP")
print(response.content)
 

В ответе JSON у вас есть логическое ['security']['is_vpn'] значение, чтобы узнать, принадлежит ли IP-адрес VPN.

Альтернативное решение — самостоятельно создать скрипт, который будет сравнивать IP-адрес вашего пользователя со списком IP-адресов известных VPN. Но может быть нелегко найти и собрать все IP-адреса VPN и регулярно обновлять их.


РЕДАКТИРОВАТЬ в ответ на ваш комментарий:

Мой ответ по-прежнему будет работать с приложением, подменяющим местоположения GPS, подобные тому, на который вы ссылались, потому что это не повлияет на API реального времени.

Если вы планируете использовать данные GPS с телефона и ищете только способ определить, настоящие они или поддельные, вы можете сравнить эти координаты GPS с координатами, указанными в ответе API. Если разница слишком велика, вы можете заключить, что данные GPS подделаны.

Комментарии:

1. В принципе, как защитить мое приложение от пользователя, использующего такое приложение play.google.com/store/apps /…

2. @SJamro мой ответ будет работать. Пожалуйста, посмотрите мое редактирование, я добавил больше информации.

Ответ №2:

Вы можете загрузить и разместить список VPN или прокси на своем собственном сервере и запросить его с помощью IP-адреса приложения, чтобы определить, находится ли один IP-адрес за VPN или прокси.

Доступны общедоступные веб-сервисы, но я не рекомендую это делать, поскольку сторонний сайт API может блокировать ваш вызов API, если трафик огромен.

Комментарии:

1. сторонний, например ipdata.co и iptegistry.co