通过Web请求从设备获取唯一的静态ID

Oli*_*ver 8 asp.net c#-4.0 asp.net-mvc-3

我有一个MVC应用程序,我想添加一些自定义统计数据.对于某些统计数据,拥有设备的唯一标识符会很不错.

例如,如果我有RSS订阅者的唯一ID,我可以监视RSS订阅者的活动数量.

我想知道是否有人知道Web请求中的任何内容可以用作IP以外的ID(这显然可以改变).像设备ID之类的东西?

谢谢,

奥利弗

Dav*_*tas 9

以下是一些需要考虑的方法.

HTTP标头

您可以查看一些HTTP标头,可以帮助您识别唯一的用户或设备 - 有些会引用SIM卡,有些会引用设备.以下是我从Google Adsense Mobile用于帮助跟踪广告的标头中获取的列表:

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

这些可能是一些非常受欢迎的,但会有更多供应商/设备特定的标题很受欢迎.您可以开始收集您的站点收到的所有标头,并计算您收到的每个标头的数量,并开始构建您自己的公共标头数据库.

其他一些方法

饼干

Cookie可以在请求代理(例如浏览器)上设置,并在代理再次访问时返回.有关方法列表,请查看Ever 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
Run Code Online (Sandbox Code Playgroud)

组合

也可以提出自己的方案,例如,使用user-agent标题,其他一些标题accept,x-fowarded-for并且ip使用它们的唯一哈希值来更准确地确定代理的唯一性.

这里有很多不同的移动标题.为了我自己的目的,我也点击了我的页面并存储了各种设备的移动标题http://wap.defza.com/ua/ua.txt(也是ua1.txt,ua2.txt等)