C# 有没有办法获得唯一的计算机id?

C# 有没有办法获得唯一的计算机id?,c#,javascript,html,silverlight,mac-address,C#,Javascript,Html,Silverlight,Mac Address,我们正在寻找一种方法来了解我们的silverligth或web应用程序正在运行的计算机。 我们最初希望它通过MAC地址进行,但我们发现silverligth无法访问MAC地址 我想知道有没有一种方法可以得到一个独特的计算机地址,比如mac地址或者其他一些独特的pc地址?通过silverligth/javascript/html或其他基于web的东西,而不在他们的电脑上安装任何东西 Thx Matthy本教程将引导您完成以下步骤: 本教程将引导您完成以下步骤: 一般来说,不可能为每台计算机获得10

我们正在寻找一种方法来了解我们的silverligth或web应用程序正在运行的计算机。 我们最初希望它通过MAC地址进行,但我们发现silverligth无法访问MAC地址

我想知道有没有一种方法可以得到一个独特的计算机地址,比如mac地址或者其他一些独特的pc地址?通过silverligth/javascript/html或其他基于web的东西,而不在他们的电脑上安装任何东西

Thx
Matthy

本教程将引导您完成以下步骤:


本教程将引导您完成以下步骤:


一般来说,不可能为每台计算机获得100%唯一的标识符,但是可以获得某种程度的唯一性。我之前已经实现了一些javascript/java代码来实现这一点。它通过从客户端机器的一些特征生成哈希来工作:

  • 客户端计算机上安装的字体
  • Java版本
  • Silverlight版本
  • IP地址
这种组合为每个客户机创建了一个某种程度上唯一的标识符,尽管很可能几个客户机具有相同的标识符。或者类似的事情。。。那是很久以前的事了

(整个过程在很大程度上取决于安装Java或Silverlight。用户还需要允许站点运行applet…)


我建议不要这样做,只是接受这不太可能的事实,然后找到解决问题的其他方法。

一般来说,不可能为每台计算机获得100%唯一的标识符,但是可以获得某种程度的唯一性。我之前已经实现了一些javascript/java代码来实现这一点。它通过从客户端机器的一些特征生成哈希来工作:

  • 客户端计算机上安装的字体
  • Java版本
  • Silverlight版本
  • IP地址
这种组合为每个客户机创建了一个某种程度上唯一的标识符,尽管很可能几个客户机具有相同的标识符。或者类似的事情。。。那是很久以前的事了

(整个过程在很大程度上取决于安装Java或Silverlight。用户还需要允许站点运行applet…)


我建议不要这样做,只是接受这不太可能的事实,并找到其他解决问题的方法。

类似的问题,有很多答案/链接可能会有所帮助?放一块饼干。是的,用户可以删除它,但这是[设计状态]。我不知道这是否适用于Silverlight,但这里有一种使用WMI的方法您的解决方案将生成您自己的(希望不仅仅是选择
last_user_number+=1;
,为了安全起见),最好在服务器端这样做,或者通过对服务器进行一次性回调以获取新ID,并将其存储到cookie/本地存储中。同样值得注意的是,MAC地址并不是100%唯一的。一个网络上不可能有重复的MAC地址。。。但这正是问题所在——它必须是网络独有的,而不是互联网独有的,因为IP地址(与网络结合,与Mac结合)就是这样做的。你真正需要的是一个带有大量答案/链接的指南相似Q,可能会有所帮助?放一块饼干。是的,用户可以删除它,但这是[设计状态]。我不知道这是否适用于Silverlight,但这里有一种使用WMI的方法您的解决方案将生成您自己的(希望不仅仅是选择
last_user_number+=1;
,为了安全起见),最好在服务器端这样做,或者通过对服务器进行一次性回调以获取新ID,并将其存储到cookie/本地存储中。同样值得注意的是,MAC地址并不是100%唯一的。一个网络上不可能有重复的MAC地址。。。但这正是问题所在——它必须是网络独有的,而不是互联网独有的,因为IP地址(与网络结合使用,与Mac结合使用)就是这样做的。你真正需要的只是一个GUID,他可以使用上面定义的GUID。不要假设在自动化软件升级的时代,我不会依赖软件包的版本号。如果IP地址不是VPN地址或10.x.y.z….就好了。。。它们变化太频繁,因此他可以使用上面定义的GUID。不要假设在自动化软件升级的时代,我不会依赖软件包的版本号。如果IP地址不是VPN地址或10.x.y.z….就好了。。。他们也经常改变