Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获取计算机的ID?_Java_Vb.net - Fatal编程技术网

Java 如何获取计算机的ID?

Java 如何获取计算机的ID?,java,vb.net,Java,Vb.net,在vb.net或java中是否有代码可以获取计算机>>的ID?? 我想写一个程序,可以得到计算机的id,以便像微软一样获得软件许可证 提前谢谢 Makara首先,微软的授权不是这样的 他们有一把钥匙,钥匙是在他们这边产生的。当他们向你出售软件副本时,他们会给你一把钥匙。输入密钥后,软件会将一些加密的tcp数据包发送回MS,以确定密钥现在正在使用,并增加使用计数。然后,它会在系统上创建一个隐藏得很好的文件,其中包含该密钥的授权 所有这些都不涉及获取“计算机id” 现在,MS(至少在一种许可模式下)

在vb.net或java中是否有代码可以获取计算机>>的ID?? 我想写一个程序,可以得到计算机的id,以便像微软一样获得软件许可证

提前谢谢


Makara首先,微软的授权不是这样的

他们有一把钥匙,钥匙是在他们这边产生的。当他们向你出售软件副本时,他们会给你一把钥匙。输入密钥后,软件会将一些加密的tcp数据包发送回MS,以确定密钥现在正在使用,并增加使用计数。然后,它会在系统上创建一个隐藏得很好的文件,其中包含该密钥的授权

所有这些都不涉及获取“计算机id”

现在,MS(至少在一种许可模式下)确实拍摄了系统快照,其中包括处理器类型、硬盘驱动器和主板品牌/型号,以确定组件是否已发生足够的变化,从而触发是否需要重新验证计算机许可证的潜在检查

这让我们回到计算机系统中没有一个“ID”的想法。最后一次尝试是英特尔(我相信?)使用他们的PII处理器。然而,公众的强烈反对足以使他们停止在芯片上添加序列号

你能做的下一件事就是尝试读取MAC地址;但网卡经常更换,这就充满了陷阱


我强烈建议您研究执行授权密钥的其他机制,如果这是您真正想要的。

您可以使用此功能,它将返回mac地址:

public String macname() throws IOException {
    String mac = "null";
    String[] getmac = new String[] { "cmd", "/c", "getmac /NH" };
    Process pnew = Runtime.getRuntime().exec(getmac);
    BufferedReader newin = new BufferedReader(new InputStreamReader(
            pnew.getInputStream()));
    String line1 = "";
    String ab = "";

    while ((line1 = newin.readLine()) != null) {
        ab = ab + line1;
    }
    int in = ab.indexOf(' ');
    mac = ab.substring(0, in);
    return mac;
}

你所说的计算机ID是什么意思?可能是重复的我想他的意思是使用WMI读取主板序列号-请参阅上面链接的SO问题。我的意思是在一台计算机中应该有类似ID的标识。当然,计算机没有MAC ID。网卡可以,但计算机可以有多个网络接口卡。