Получите уникальный статический id с устройства через веб-запрос

У меня есть приложение MVC, в которое я хотел бы добавить некоторые пользовательские статистики. Для некоторых статов, было бы неплохо иметь уникальный идентификатор для устройства.

например, если у меня есть уникальный идентификатор для подписчика RSS, я могу контролировать активное количество подписчиков RSS.

Мне было интересно, знает ли кто-нибудь что-нибудь в веб-запросе, которое можно использовать в качестве идентификатора, отличного от IP (который, очевидно, может измениться). Что-то вроде идентификатора устройства или что-то?

спасибо,

Оливер

4 ответов


вот несколько подходов к рассмотрению.

заголовки HTTP

есть несколько заголовков HTTP, которые вы можете посмотреть, что может помочь вам идентифицировать уникального пользователя или устройство - некоторые будут ссылаться на sim-карту, некоторые относятся к устройству. Вот список, который я получил из заголовков, которые Google Adsense Mobile использует для отслеживания их реклама:

  • x-dcmguid
  • x-up-subno
  • x-jphone-uid
  • x-em-uid

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

некоторые другие подходы

печенье

Cookies-это то, что можно установить на запрашивающем агенте (например, в браузере) и вернуть, когда агент снова посещает. Для получения списка методов, проверьте Когда-Либо Cookie - практически постоянный cookie-он работает с помощью одного из следующих методов, из которых по крайней мере один будет работать:

 - Standard HTTP Cookies 
 - Local Shared Objects (Flash Cookies)
 - Silverlight Isolated Storage 
 - Storing cookies in RGB values of auto-generated, force-cached 
    PNGs using HTML5 Canvas tag to read pixels (cookies) back out
 - Storing cookies in Web History 
 - Storing cookies in HTTP ETags 
 - Storing cookies in Web cache 
 - window.name caching
 - Internet Explorer userData storage
 - HTML5 Session Storage 
 - HTML5 Local Storage 
 - HTML5 Global Storage 
 - HTML5 Database Storage via SQLite

комбинации

также можно придумать свою собственную схему, например взять user-agent заголовок, некоторые другие заголовки вроде accept, x-fowarded-for и ip делают уникальное хэш-значение из них, чтобы более точно определить уникальность агента.

здесь много различных мобильных заголовков, Как видно здесь. Я также попал на страницу моей и хранить мобильные заголовки с различных устройств для моих собственных целей здесь http://wap.defza.com/ua/ua.txt (также ua1.txt, ua2.тхт и т. д.)


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

конечно, это ни в коем случае не доказательство, поскольку пользователи могут отклонять куки, удалять их, и они могут использовать много разных браузеров (каждый из которых будет иметь другой куки). Если вы коварный (и я бы не рекомендовал это), вы можете использовать Локальный Общий Объект (Flash Cookie), так как это с меньшей вероятностью будет удалено. Однако в конце концов, если кто-то не хочет, чтобы его выслеживали, вы не можете заставить его это сделать.

в целом, хотя, если вы хотите аналитику и отслеживание, рассмотрите возможность использования стороннего решения, такого как Google Analytics. Это даст вам очень подробные данные (хотя все еще полагаясь на куки и javascript) о вашем посетители и их привычки просмотра.


кроме IP

Если ваш сайт не требует какой-либо аутентификации для обслуживания этого контента, IP-адрес-единственное, что вы можете получить для идентификации клиентов, и даже это не может быть уникальным, например, у вас может быть два клиента за одним прокси => нет способа отличить эти запросы в этом случае. Другая возможность - использовать cookies, но этот вид попадает в первую категорию => аутентификация.


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

единственный вариант, который у вас есть, это какая-то форма cookie.

для RSS-каналов вы могли бы вставлять случайный уникальный идентификатор в URL-адрес канала каждый раз, когда он отображается, чтобы вы знали, когда человек, который получил этот URL, загрузил ваш канал. Однако, если пользователь поделился этим URL-адресом с другими, у вас не будет реального способа знание.