如何从客户端计算机获取任何唯一ID?

时间:2018-02-05 07:44:25

标签: c#

我需要使用c#从计算机获取唯一ID。我使用代码

使用Mac地址完成了它
string macAddresses = "";
           foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
           {
               if (nic.OperationalStatus == OperationalStatus.Up)
               {
                   macAddresses += nic.GetPhysicalAddress().ToString();
                   break;
               }
           }
           return macAddresses;

但是当我在服务器中运行代码时,它会返回服务器的Mac地址。如何使用c#获取客户端系统的Mac地址或任何唯一ID。

2 个答案:

答案 0 :(得分:2)

没有任何内容可以通过请求自动发送到服务器。

实现此目的的一种方法是在每次新客户端连接时在服务器上生成唯一ID,并将此ID发送到客户端,以便它可以随每个后续请求发送它,您可以通过此ID识别它。

当然,您必须确保您生成的ID实际上是唯一的,并且您必须将生成的ID存储在服务器上,以了解现有的"连接"并且能够拒绝假身份证。

答案 1 :(得分:0)

正如马丁所说:

  

没有任何内容可以通过请求自动发送到服务器。

您需要在您的请求中传递信息,以便能够在C#代码中处理它。

出于安全原因,默认情况下,所有现代broswers都无法通过JS访问客户端的MAC地址。 See more

(ASP.Net)您可以在客户首次访问您的网站时将会话GUID设置为cookie,这应该是识别用户的。

(WinForms / WPF)您可以在 CLIENT 应用程序中使用相同的代码,然后将其发送到您的api / webservice。

(WinForms / WPF)还有一种名为HD UUID(可能仅限Windows)的东西,它可以被第三方软件修改,这使得它不是100%安全(我看到有人将其修改为“假的” auth“一些许可软件)。 See more

如果你指定这是什么类型的服务器也是有用的,我假设它是web,但得到了一些WinForms / WPF替代品