CPU序列号:

  1. package test;
  2. import java.io.IOException;
  3. import java.util.Scanner;
  4. public class CPUTest {
  5. /**
  6. * @param args
  7. * @throws IOException
  8. */
  9. public static void main(String[] args) throws IOException {
  10. // TODO Auto-generated method stub
  11. long start = System.currentTimeMillis();
  12. Process process = Runtime.getRuntime().exec(
  13. new String[] { "wmic", "cpu", "get", "ProcessorId" });
  14. process.getOutputStream().close();
  15. Scanner sc = new Scanner(process.getInputStream());
  16. String property = sc.next();
  17. String serial = sc.next();
  18. System.out.println(property + ": " + serial);
  19. System.out.println("time:" + (System.currentTimeMillis() - start));
  20. }
  21. }

结果输出是这样的   

其实就是用Runtime.getRuntime().exec 执行一个指令而已。。

想知道结果是否是准确的 , 可以在DOS下面测试  首先windows键+R键 打开运行框 ,然后输入cmd 打开DOS 。然后输入   wmic cpu get ProcessorId

这次的结果任然是    

Runtime.getRuntime().exec 真的很强大啊,直接可以取得当前JVM的运行时环境,然后通过exec执行传入的命令参数,Runtime.exec还可以做其他的事情,比如说直接打开一个文件。。不过在这里我就不在做了,有兴趣的小伙伴可以自己去试试看。。。

转载自:https://blog.csdn.net/y353027520dx/article/details/42494721

java获取mac和机器码,注册码的实现

package util;
import java.net.NetworkInterface;
import java.util.Enumeration;
import java.util.HashSet;
import java.util.Properties;
import java.util.Set;
import org.hyperic.sigar.NetFlags;
import org.hyperic.sigar.NetInterfaceConfig;
import org.hyperic.sigar.Sigar;
import org.hyperic.sigar.SigarException;
import org.springframework.security.authentication.encoding.Md5PasswordEncoder;/*** java获取mac和机器码,注册码的实现* */
public class AuthorizationUtils {private static final int SPLITLENGTH = 4;private static final String SALT = "yunshouhu";public static void main(String args[]) throws Exception {String code = getMachineCode();System.out.println("code:" + code);String authCode = auth(code);System.out.println("机器码:" + code);System.out.println("注册码:" + authCode);// System.out.println("mac:"+getMac());// System.out.println("mac2:"+getMac2());}private static String getMachineCode() {Set<String> result = new HashSet<>();String mac = getMac();System.out.println("mac:" + getMac());result.add(mac);Properties props = System.getProperties();String javaVersion = props.getProperty("java.version");result.add(javaVersion);// System.out.println("Java的运行环境版本:    " + javaVersion);String javaVMVersion = props.getProperty("java.vm.version");result.add(javaVMVersion);// System.out.println("Java的虚拟机实现版本:    " +// props.getProperty("java.vm.version"));String osVersion = props.getProperty("os.version");result.add(osVersion);// System.out.println("操作系统的版本:    " + props.getProperty("os.version"));String code = new Md5PasswordEncoder().encodePassword(result.toString(), SALT);return getSplitString(code, "-", 4);}// 使用hyperic-sigar获取macprivate static String getMac2() throws SigarException {Sigar sigar = new Sigar();String[] ifaces = sigar.getNetInterfaceList();for (String iface : ifaces) {NetInterfaceConfig cfg = sigar.getNetInterfaceConfig(iface);if (NetFlags.LOOPBACK_ADDRESS.equals(cfg.getAddress())|| (cfg.getFlags() & NetFlags.IFF_LOOPBACK) != 0|| NetFlags.NULL_HWADDR.equals(cfg.getHwaddr())) {continue;}String mac = cfg.getHwaddr();return mac;}return null;}public static String auth(String machineCode) {String newCode = "(yunshouhuxxx@gmail.com)["+ machineCode.toUpperCase() + "](xxx应用级产品开发平台)";String code = new Md5PasswordEncoder().encodePassword(newCode, SALT).toUpperCase() + machineCode.length();return getSplitString(code);}private static String getSplitString(String str) {return getSplitString(str, "-", SPLITLENGTH);}private static String getSplitString(String str, String split, int length) {int len = str.length();StringBuilder temp = new StringBuilder();for (int i = 0; i < len; i++) {if (i % length == 0 && i > 0) {temp.append(split);}temp.append(str.charAt(i));}String[] attrs = temp.toString().split(split);StringBuilder finalMachineCode = new StringBuilder();for (String attr : attrs) {if (attr.length() == length) {finalMachineCode.append(attr).append(split);}}String result = finalMachineCode.toString().substring(0,finalMachineCode.toString().length() - 1);return result;}public static String bytesToHexString(byte[] src) {StringBuilder stringBuilder = new StringBuilder("");if (src == null || src.length <= 0) {return null;}for (int i = 0; i < src.length; i++) {int v = src[i] & 0xFF;String hv = Integer.toHexString(v);if (hv.length() < 2) {stringBuilder.append(0);}stringBuilder.append(hv);}return stringBuilder.toString();}// ‎00-24-7E-0A-22-93private static String getMac() {try {Enumeration<NetworkInterface> el = NetworkInterface.getNetworkInterfaces();while (el.hasMoreElements()) {byte[] mac = el.nextElement().getHardwareAddress();if (mac == null)continue;String hexstr = bytesToHexString(mac);return getSplitString(hexstr, "-", 2).toUpperCase();}} catch (Exception exception) {exception.printStackTrace();}return null;}
}

转自:https://blog.csdn.net/earbao/article/details/41484691

java获取mac和机器码,注册码的实现、CPU序列号相关推荐

  1. Java: 获取MAC网络地址

    Java: 获取MAC网络地址 0. 背景 最近由于课程设计,需要使用MAC物理地址作为软件注册码的唯一标识,故成此博客! 从各个网络适配器的作用 →\rightarrow→ 确定哪一个MAC地址作为 ...

  2. Java 获取操作系统名字、系统版本、cpu信息

    Java 获取操作系统名字.系统版本.cpu信息 System.getProperty("os.name");//得到操作系统名字 System.getProperty(" ...

  3. java获取mac地址-屏蔽ip封mac地址

    首先要说的是:可以支持外网机器的mac地址获取.  以前弄了一个只能访问局域网. 有防火墙就访问不了, 但是这个不用担心了. 测试了百度的ip,已经可以获得mac地址 测试效果图: java通过ip获 ...

  4. java 获取mac地址 乱码_Java:开机获取Mac地址问题

    server.jar设置为开机自启动,启动时会执行getLinuxMac()方法获取本机Mac地址: private static String getLinuxMac() { StringBuffe ...

  5. java 获取mac字体_Mac OS X上的Java App无法正确打印字体

    我最近发现我写的徽章打印程序在 Windows上运行良好多年没有在MAC OS X上正确打印.我使用的是Arial truetype字体.该程序似乎显示基本字体,没有适当的缩放.我正在使用intell ...

  6. 记Java如何获取MAC地址

    MAC地址简单认识 MAC地址也叫物理地址.硬件地址,由网络设备制造商生产时烧录在网卡(Network lnterface Card)的EPROM(一种闪存芯片,通常可以通过程序擦写). IP地址与M ...

  7. android 获取mac c语言,获取设备的mac地址和IP地址(android6.0以上专用)

    /** * 获取设备HardwareAddress地址 * @return */ public static String getMachineHardwareAddress(){ Enumerati ...

  8. java 根据ip获取mac地址_利用java如何根据IP获取mac地址

    利用java如何根据IP获取mac地址 发布时间:2020-11-25 15:49:42 来源:亿速云 阅读:74 作者:Leah 利用java如何根据IP获取mac地址?针对这个问题,这篇文章详细介 ...

  9. JAVA获取局域网内对应IP电脑的MAC地址(物理地址)

    创建类UdpGetClientMacAddr.java package com.shuzhiqiang.common;import java.io.IOException; import java.n ...

最新文章

  1. 常见的计算机视觉任务综述
  2. 前后端token机制 识别用户登录信息
  3. git仓库迁移(全部分支)
  4. 工具 左侧服务列表_协作办公时代,在线编辑文档工具,安排!
  5. Exception processing async thread queue
  6. 《ASP.NET Core 微服务实战》-- 读书笔记(第12章)
  7. GridView 利用AspNetPager 分页时的自动编号
  8. 关闭运动轨迹_网球初学者如何正确入门网球运动,有哪些学习细节
  9. mongodb报错一例
  10. RISC-V踩坑记----__builtin_clz((x)库函数的应用
  11. 苦逼的是怎么又有东西没记住,但我们依然每天坚持一遍、一遍又一遍指导记住为止。
  12. flask中蓝图的使用
  13. [HTML 5] More about ARIA Relationships
  14. poj1511 最短路
  15. python地震数据处理_Python爬虫之实时地震数据
  16. 操作系统资源管理技术
  17. 【Linux命令】mergecap命令的用法
  18. 【pandas】set_index函数详解
  19. 嵌入式软件未来发展趋势
  20. c语言用switch编写春夏秋冬,利用switch实现春夏秋冬

热门文章

  1. python将电视剧按收视率进行排序_用 Python 检测国产电视剧后,发现了各位演员的真实水平.........
  2. 大型建企招聘,大量岗位可选择
  3. 计算机桌面个性化怎样设置方法,win10电脑中右键桌面无法打开个性化和显示设置如何处理...
  4. php bigpipe实现,如何通过php实现BigPipe分块输出
  5. arm-poky-linux-gnueabi-ld: unrecognized option '-Wl,-O1' 错误
  6. 全覆盖路径规划思想(2)
  7. 博弈论笔记1-博弈论基础引论
  8. 【小知识】Windows下在命令行终端用tar命令解压.tar.gz文件
  9. 五一堵车 | AI“高速”车辆检测轻而易举监测大家安全
  10. 关于精英蚁群算法matlab,蚁群算法MATLAB解VRP问题