Лучший способ отслеживать мобильные клиенты, которые используют динамические IP-адреса - PullRequest
3 голосов
/ 20 июня 2011

Мне нужно отслеживать пользователей моего мобильного приложения. Когда они подключены через Wi-Fi, у них есть статический IP-адрес, который никогда не меняется - это облегчает отслеживание. Однако, если они используют свою мобильную сеть, их IP-адреса меняются при каждом запросе, что затрудняет отслеживание.

Мне интересно посмотреть, как другие могли подойти к этой проблеме и реализовать подходящую стратегию отслеживания в этой ситуации?

РЕДАКТИРОВАТЬ: решение должно быть как можно более безопасным, чтобы предотвратить отслеживание пользователей.

Спасибо

Ответы [ 2 ]

2 голосов
/ 20 июня 2011

Я предполагаю, отслеживая, вы имеете в виду, что веб-сервис знает, что два разных запроса от одного пользователя?

Если это так, то вам просто нужно использовать стандартные веб-инструменты для этого: сеансы и куки.

Сделайте так, чтобы ваше приложение генерировало уникальный идентификатор при запуске, и отправляйте этот уникальный идентификатор в виде файла cookie или переменной при каждом обращении к веб-службе. Таким образом, вы действительно уникально идентифицируете их.

Также обратите внимание: Wifi может дать вам статический IP-адрес внутри сети, к которой подключено устройство, но не в Интернете. Внешний (публичный) ip, который вы можете получить, это ваш маршрутизатор. Большую часть времени и с большинством интернет-провайдеров, если по какой-то причине соединение не удается, маршрутизатор будет иметь новый IP-адрес. Кроме того, если два человека используют один и тот же маршрутизатор для подключения к вашему веб-сервису, у них будет один и тот же общедоступный IP-адрес.

EDIT : Обычный способ обеспечения большей безопасности - это тот, который используется большинством веб-сайтов: UID, используемый для аутентификации пользователя, генерируется веб-сервером (а не приложением) по первому запросу / аутентификация сеанса. Этот UID передается от веб-сервера в приложение, которое затем отправляет его при каждом запросе. Это ограничивает «кражу сеанса» продолжительностью сеанса. Запрос, который не отправляет UID или UID, который не существует в базе данных, является незаконным.

РЕДАКТИРОВАТЬ 2 : ОП добавил в комментарии ниже, что он действительно хочет ограничить количество запросов, сделанных одним пользователем в определенное время. Практически это означает уникальную идентификацию устройства. Один из способов сделать это - вычислить UID на устройстве при первом запуске и сохранить его на устройстве. Затем отправляйте этот UID в веб-сервис с каждым запросом. Веб-служба будет нести ответственность за ограничение числа обращений по определенному UID.

Примечание: Будьте внимательны при создании UID. Android как Android_ID , но известно, что он иногда равен нулю и со временем меняется. Этот парень, кажется, нашел не поддающийся легкому обману UID устройства :

0 голосов
/ 20 июня 2011

Вы должны иметь возможность использовать идентификатор устройства: http://developer.android.com/reference/android/telephony/TelephonyManager.html#getDeviceId()

Редактировать: Или создать UUID при первом запуске приложения, дополнительные предложения и информацию здесь: http://android -developers.blogspot.com/2011/03/identifying-app-installations.html

...