超越Mac地址:在服务器端唯一识别设备

时间:2012-10-04 10:45:42

标签: asp.net-mvc-3

我正在研究分析工具。我希望能够合理地识别出独特的用户(或者更有可能是独特的机器) - 某种程度的不准确性是可以的。我需要支持低级设备(Android / iOS)和Web(JS / Flash),因为我在Haxe中构建客户端。 (另一个警告是我不能使用特定于语言的API。)

以前,我使用(ip, mac address)的元组来唯一标识用户。但是,在Flash(和Javascript)中,您无权访问mac地址。在我看来,我应该在服务器端存储和管理身份,也许是使用GUID。客户端将从服务器请求GUID(或某种ID),并将其用于来自同一设备的任何后续请求。

但是,我不确定GUID是不是一个好主意;或者我是否应该用IP或其他信息补充它。 (我有权从客户端获取IP。)

客户端上的工作流程为:

  • 检查存储的唯一标识符
  • 如果存在,请发送所有请求
  • 如果没有,请拨打电话以请求唯一标识符并存储
  • 发送所有后续呼叫的唯一标识符

当然,这只会是每个设备唯一的,并且可能有某种方法通过删除本地设备上的标识符来获得两个用户的误报。

在服务器端,它就像生成新的GUID并在请求唯一标识符时将其发送给用户一样简单。

这是一个好方法吗?有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

根据您所需的唯一性和安全级别,您可以考虑使用persistent cookies。 Cookie可以是您在工作流程中描述的唯一标识符。并确保cookie将通过后续请求发送,它应该是persistent cookie

答案 1 :(得分:1)

如果设备上有SNMP代理(大多数设备将支持SNMP),则可以通过SNMP查询mac地址,从而识别设备。这就是网络管理工具的工作方式(并将多个接口连接在一起以识别具有多个接口的单个​​设备)