问题标签 [hardware-id]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2091 浏览

.net - 像微软一样获取硬件 ID

在 Windows SDK 中有一个名为computerhardwareids的 CLI 工具

该工具会返回各种 GUID,以便为特定情况选择正确的 HardwareId。

这是在我的 PC 中返回此工具的输出:


我想开发一个通用的使用函数,它应该模仿那个微软工具的功能,返回完全相同的 HardwareIds(完全相同)。

我在 MSDN 上找到了信息,所有输出似乎都记录得很清楚,它包含有关返回此工具的值的信息,但它没有具体说明 WMI 类的属性是什么,它只是说“ Bios ”和“ System ” :

· ComputerHardwareIds 概述

·指定计算机的硬件 ID

我很迷茫,我找不到任何值,例如“Family”、“BIOS Vendor”、“Bios Major Release”、“Bios Minor Release”,我不确定“SKU Number”指的是什么。

我认为这些是 WMI 类,该工具在其中获取所有数据的一部分以制作 guid:

· Win32_BIOS 类

· Win32_BaseBoard 类

· Win32_ComputerSystem 类

· Win32_ComputerSystemProduct 类

请注意,文档也这样说:

然后使用 SHA-1 散列算法将每个字符串转换为 GUID。


这是我试图做的,但我不确定我是否对某些概念或某些价值观有误,它是不完整的,而且我对 Guis 也有问题(用注释行解释):

0 投票
2 回答
914 浏览

java - Java 存储 UUID

我有一个关于存储 UUID 的问题。我想使用 Java 生成一个 UUID 并保存它,以便下次应用程序运行时可以检索它。

在我构建的 .NET 应用程序中,我正在做类似的事情。我正在使用 Windows 注册表来存储 UUID 和所有其他设置。但是,这个 Java 应用程序应该是跨平台兼容的。这就提出了问题。显然在其他操作系统上,我不会有 Windows 注册表来完成这样的任务,那么我该怎么做呢?

对于这个问题,我有一个解决方案,但我想要一些更复杂的东西。我当前的解决方案是unique.txt在应用程序的目录中存储一个文本文件(命名为 ),然后在运行时读取它。

以下是我对该解决方案的不满:

  • 如果用户将应用程序移动到新目录,则程序必须生成新的 UUID 和设置文件。
  • 我不喜欢用户可以看到位于其目录中的设置文件这一事实。

以下是我希望解决方案满足的条件:

  • 解决方案应该能够存储 UUID 值(可能还有其他变量),以便在运行时可以检索和修改它们。
  • 如果应用程序被删除然后重新下载,之前安装的值应该仍然可以检索。
  • 用于存储值的文件不应出现在应用程序的目录中(没有任何意义将用户目录与设置文件混淆)。
  • 如果用户将应用程序移动到不同的目录,应用程序应该仍然能够检索以前的设置文件。设置不应依赖于目录。

我曾考虑将设置文件存储在根目录中(/在 unix 和C:\Windows 上);但是,根据我的经验,写入根目录通常需要提升权限。我也觉得根目录不是最合适的位置。

如果 Java 有一个内置的方法来做这样的事情,我将非常感谢有人指出我的方向。否则,如果有人可以提供一些指导,那也很棒。

如果这个问题是重复的,我很抱歉。我已经搜索过类似的东西,但我没有找到答案。如果有关问题的任何内容不清楚,请添加评论,我将尝试修改问题以澄清。

先感谢您。

0 投票
1 回答
185 浏览

networking - (相同的硬件 ID)在 Windows 7 上使用 .NET 以编程方式创建/销毁网桥

看来 Bridgeutil_1.0 是一个很棒的工具,简单易用,但我的问题是有两个具有相同硬件 ID 的网络适配器,我碰巧必须将它们连接在一起,我该怎么做?

我使用了如下命令:

bridgeutil /attach "PCI\VEN_8086&DEV_10D3&SUBSYS_00008086&REV_00" /attach "PCI\VEN_8086&DEV_10D3&SUBSYS_00008086&REV_00"

但它仍然只连接一个网络。

在 Windows 7 上使用 .NET 以编程方式创建/销毁网桥

0 投票
3 回答
9215 浏览

c++ - GetVolumeInformation() 产生不同的磁盘序列号

这是我获取硬盘序列号的一段代码,但问题是每次程序执行时值都不同。有人可以解释一下吗?

解决了:

谢谢。

0 投票
1 回答
57 浏览

macos - 如何为每张卡生成唯一的 MAC ID?

我想知道所有不同的网络设备如何具有不同的 MAC ID。

是否为每个设备单独硬编码?(极不可能......因为在生产中没有人愿意更改代码并重新编译和加载程序......)或者使用开关来设置地址还是从ROM加载?或者是其他东西 ..

0 投票
1 回答
1541 浏览

c# - 使用 C#(Mono) 在 Mac 上获取唯一系统 ID

使用 Mono 为 Mac 移植一个 Windows 应用程序。我不能在 Mac 中使用 DPAPI,我认为在 Mac 中为用户级程序获取主板/CPU id 是有限制的。所以在 windows 中是否有类似 DPAPI 的东西,我可以使用 Mono 来使用获得一个不会改变的唯一系统 ID。

0 投票
0 回答
828 浏览

hardware-id - 在 Mac/Win 上生成硬件 ID

我正在尝试开发一个基本的许可证系统来防止某些软件工具的分发。

我想设计一种算法,它可以在 Windows 或 Mac OS 系统上生成相同的 HWID。它也应该是可移植的,即可以在 Go/Java/.Net 中实现

我目前正在考虑一些涉及获取所有硬盘驱动器序列号、CPU 序列号和已安装 RAM 的方案。将这些和 SHA1 或其他东西连接起来。那将是HWID。

我的问题是所有这些都可以在类似的系统上收集吗?

谢谢。

0 投票
2 回答
13930 浏览

c++ - 获取主板序列号

我想将程序绑定到特定的计算机,为此我想使用主板的序列号作为唯一标识符。

虽然我可以找到 C# 和 Java 的一些示例,但我找不到 C++ 可靠的东西(我读过 WMI 可能会因硬件而失败),但肯定有办法在 C++ 中做到这一点吗?

编辑:换句话说,我想要的是一个简单而基本的许可系统。为了更清楚,下面是它的样子:

这显然不完美,但我没有任何服务器 atm 来设置帐户系统,所以这可能是一个临时解决方案。

0 投票
0 回答
38 浏览

python - 从磁盘驱动器、硬盘驱动器等获取设备品牌/型号

在 Python 2 中,我正在寻找设备的品牌/型号,例如以太网卡、硬盘驱动器、CD/DVD/BD 驱动器等。我不知道从哪里开始,最接近谷歌的东西搜索可以想出的是检测光盘何时插入驱动器或获取 USB 设备的名称。

例如,我希望从系统中检索名称,例如ST1500DM003-9YN16G(这是一个 HDD)或VirtualBox Host-Only Ethernet Adapter(这是一个以太网适配器)。要求管理员权限不是问题,因为将在其中使用的程序无论如何都需要管理员权限才能进行其他操作。

0 投票
1 回答
430 浏览

c# - 如何在 CSharp 中制作自己的许可证密钥

我在复制我的程序 exe 时遇到了一些问题,所以我想为每台 PC 制作一个代码并注册我的程序!如何在 C# 中制作单个代码(计算机 ID 或硬件 ID 或...)?并检查它!