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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过Web请求从设备获取唯一的静态ID相关的知识,希望对你有一定的参考价值。

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

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

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

谢谢,

奥利弗

答案

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

HTTP Headers

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

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

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

Some other approaches

曲奇饼

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

组合

也可以提出自己的方案,例如:采取user-agent标题,其他一些标题如acceptx-fowarded-for和ip使得它们具有唯一的哈希值,以更准确地确定代理的唯一性。

many different mobile headers as seen here。我也点击了我的一个页面并存储来自各种设备的移动标题,以用于我自己的目的http://wap.defza.com/ua/ua.txt(也是ua1.txt,ua2.txt等)

另一答案

简短的回答是他们不是任何(并且有充分的理由给予隐私问题)。更有用的答案是,这是你通常使用cookies做的事情。您设置了一个cookie,然后检查它以识别发出请求的特定浏览器。

当然,这绝不是万无一失的,因为用户可以拒绝cookie,删除它们,并且可以使用许多不同的浏览器(每个浏览器都有不同的cookie)。如果你是狡猾的(我不建议这样做)你可以使用Local Shared Object(Flash Cookie),因为这不太可能被删除。但是,在一天结束时,如果有人不想被跟踪,你就不能强迫他们这样做。

但是,一般来说,如果您想要分析和跟踪,那么请考虑使用像Google Analytics这样的第三方解决方案。这将为您提供有关访问者及其浏览习惯的非常详细的数据(尽管仍然依赖于cookie和javascript)。

另一答案

除了知识产权

如果您的站点不需要任何类型的身份验证来提供此内容,那么IP地址是您唯一可以识别客户端的地方,甚至可能不是唯一的,例如您可能有两个客户端proxy =>在这种情况下无法区分这些请求。另一种可能性是使用cookie,但这种类型属于第一类=>身份验证。

另一答案

没有标识符由浏览器提供,隐私问题使得任何供应商都不太可能实现这一点,现在至少。

你唯一的选择是某种形式的cookie。

对于RSS源,您可以想象每次呈现时在源URL中嵌入随机唯一ID,因此您可以知道检索该URL的人何时下载了您的Feed。但是,如果用户与其他人共享该URL,则您无法真正了解。

以上是关于通过Web请求从设备获取唯一的静态ID的主要内容,如果未能解决你的问题,请参考以下文章

是否可以从移动设备获取唯一标识号?

Android设备唯一ID实现方案

获取唯一设备ID

从 iPhone NFC 获取唯一 ID

通过 id 从片段获取编辑文本到其托管活动

漫谈唯一设备ID