【问题标题】:Creating a computer ID using Mono使用 Mono 创建计算机 ID
【发布时间】:2014-06-02 06:14:24
【问题描述】:

我使用 .Net 框架在 C# 中开发了一些工具,并且我正在考虑迁移到 Mono。基于兼容性分析工具 (MOMA),唯一的兼容性问题是许可代码:

我使用 Window 的序列号和其他一些东西来生成一个计算机 ID,然后我用它来生成和管理我的许可证。

显然,Windows 在 Linux 或 Mac 上不可用,因此我需要另一种方法来生成计算机 ID。

我可以在单声道中使用什么来创建一个相当可靠的计算机 ID?

【问题讨论】:

    标签: mono licensing


    【解决方案1】:

    使用 MAC 地址:

    Get MAC Address in linux using mono

    这对于给定的网络接口应该是唯一的,它将唯一标识机器。

    另外,请参阅单声道 this thread discussing the pitfalls and issues related to DRM

    【讨论】:

    • 谢谢,这可行,但我有点担心更改 mac 地址的难易程度。还有其他选择吗?
    【解决方案2】:

    您可以使用 CPUID 和硬盘序列号的组合。

    至于您的代码,单行不会有一种优雅的方式来执行此操作。您必须通过Environment.OSVersion 检查您在哪个平台上运行。然后基于此,分支您的代码以进行特定于系统的访问。例如,要获取 CPUID/hdd 序列号,请使用 WMI 查询;或解析 hdparm -I /dev/hda 的输出并从那里开始。

    【讨论】:

      【解决方案3】:

      您可以使用 Microsoft 检查 Windows XP 硬件的部分内容activation。他们检查了 10 个项目

      • 显示适配器
      • SCSI 适配器
      • IDE 适配器(实际上是主板)
      • 网络适配器 (NIC) 及其 MAC 地址
      • RAM 数量范围(即 0-64mb、64-128mb 等)
      • 处理器类型
      • 处理器序列号
      • 硬盘设备
      • 硬盘卷序列号 (VSN)
      • CD-ROM / CD-RW / DVD-ROM

      当 XP 被(重新)安装/激活时,它会联系他们的服务器,如果上述 7 项或更多项未更改,它将激活而无需与任何人交谈。

      我个人建议不要使用 MAC 地址。正如你提到的,它可以很容易地改变。此外,大多数机器现在都有两个或更多网卡(有线和无线)。虚拟化变得更糟,因为 MAC 可以比物理 MAC 更容易更改(您是否为虚拟环境提供不同的许可?)

      另一个选项是使用root file systemUUID,而不是检查所有10 个硬件组件。这样做的缺点是,如果驱动器出现问题,则需要重新获取许可证。

      sudo blkid
      /dev/sda1: TYPE="ntfs" UUID="72C0DE8EC0DE57C5" LABEL="windows" 
      /dev/sda2: UUID="30fcb748-ad1e-4228-af2f-951e8e7b56df" SEC_TYPE="ext2" TYPE="ext3" 
      /dev/sda5: TYPE="swap" UUID="8c4e69f8-5074-42c0-8134-0b2429c4c02c" 
      /dev/sdb1: SEC_TYPE="msdos" UUID="4848-E35A" TYPE="vfat" 
      

      【讨论】:

      • 听起来很有趣,但是您如何使用单声道以一种无论操作系统如何都可以工作的方式访问其中的任何内容? (对我来说,迁移到 Mono 的重点是在 Windows、Mac 和 Linux 上使用相同的代码)
      • @Sylverdrag 您想做的事情的本质是不可移植的。如果是我,我会坚持你原来的 windows 方法并在其他平台上使用 lspci 或其他东西(虽然我不确定 mac 是否有 lspci)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-12
      • 1970-01-01
      • 2013-08-12
      • 2017-06-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多