java获取电脑部分信息
获取mac地址与cpu序列号
参考博客:https://www.jb51.net/article/94793.htm
另一篇参考地址没记录下来
package util; import java.io.BufferedReader;
import java.io.File;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; /**
* @todo 获取电脑配置信息
* @author zhangyanan
* @date 2018年8月6日
*/
public class CpuUtil {
private static final Logger logger = LoggerFactory.getLogger(CpuUtil.class);/**
* @todo 获取电脑cpu序列号
* @author zhangyanan
* @date 2018年8月6日
*/
public static String getCPUSerial() {
String os = System.getProperty("os.name");
if (os.toLowerCase().startsWith("win")) {
return CpuUtil.getWindowsCPUSerial();
} else {
return CpuUtil.getLinuxCPUSerial();
} } /**
* @todo windows获取cpu序列号
* @author zhangyanan
* @date 2018年8月6日
*/
public static String getWindowsCPUSerial() {
String serial = null;
try {
Process process = Runtime.getRuntime().exec(new String[] { "wmic", "cpu", "get", "ProcessorId" });
process.getOutputStream().close();
Scanner sc = new Scanner(process.getInputStream());
sc.next();
serial = sc.next();
sc.close();
} catch (Exception e) {
logger.error("getWindowsCPUSerial异常", e);
}
return serial;
} /**
* @todo linux获取cpu序列号
* @author zhangyanan
* @date 2018年8月6日
*/
public static String getLinuxCPUSerial() {
String result = "";
try {
File file = File.createTempFile("tmp", ".vbs");
file.deleteOnExit();
FileWriter fw = new java.io.FileWriter(file);
String vbs = "Set objWMIService = GetObject(\"winmgmts:\\\\.\\root\\cimv2\")\n"
+ "Set colItems = objWMIService.ExecQuery _ \n" + " (\"Select * from Win32_Processor\") \n"
+ "For Each objItem in colItems \n" + " Wscript.Echo objItem.ProcessorId \n"
+ " exit for ' do the first cpu only! \n" + "Next \n"; // + " exit for \r\n" + "Next";
fw.write(vbs);
fw.close();
String path = file.getPath().replace("%20", " ");
Process p = Runtime.getRuntime().exec("cscript //NoLogo " + path);
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while ((line = input.readLine()) != null) {
result += line;
}
input.close();
file.delete();
} catch (Exception e) {
logger.error("getLinuxCPUSerial异常", e);
} return result;
} /**
* @todo 获取mac地址
* @author zhangyanan
* @date 2018年8月6日
*/
public static String getMACAddress() {
InetAddress ia;
try {
ia = InetAddress.getLocalHost();
return getMACAddress(ia);
} catch (UnknownHostException e) {
logger.error("getMACAddress()异常", e);
return null;
} } /**
* @todo 获取mac地址
* @author zhangyanan
* @date 2018年8月6日
*/
public static String getMACAddress(InetAddress ia) {
// 获得网络接口对象(即网卡),并得到mac地址,mac地址存在于一个byte数组中。
try {
byte[] mac = NetworkInterface.getByInetAddress(ia).getHardwareAddress(); // 下面代码是把mac地址拼装成String
StringBuffer sb = new StringBuffer(); for (int i = 0; i < mac.length; i++) {
if (i != 0) {
sb.append("-");
}
// mac[i] & 0xFF 是为了把byte转化为正整数
String s = Integer.toHexString(mac[i] & 0xFF);
sb.append(s.length() == 1 ? 0 + s : s);
} // 把字符串所有小写字母改为大写成为正规的mac地址并返回
return sb.toString().toUpperCase();
} catch (SocketException e) {
logger.error("getMACAddress异常!", e);
return null;
}
}
}
java获取电脑部分信息的更多相关文章
- Java获取电脑IP、MAC、各种版本
Java代码获取电脑IP.MAC.各种版本 package com.rapoo.middle.action; import java.io.BufferedReader; import java.io ...
- Java获取电脑硬件信息
package com.szht.gpy.util; import java.applet.Applet; import java.awt.Graphics; import java.io.Buffe ...
- java获取电脑mac物理地址
import java.net.InetAddress;import java.net.NetworkInterface;import java.net.SocketException;import ...
- java工具类,在Windows,Linux系统获取电脑的MAC地址、本地IP、电脑名
package com.cloudssaas.util; import java.io.BufferedReader; import java.io.IOException; import java. ...
- 使用RXTX获取电脑串口
RXTX是javacomm串口通信的一个扩展 RXTX开发所需文件的下载地址:http://rxtx.qbang.org/wiki/index.php/Download 解压之后可以看到支持各个平台的 ...
- js/java 获取、添加、修改、删除cookie(最全)
一.cookie介绍 1.cookie的本来面目 HTTP协议本身是无状态的.什么是无状态呢,即服务器无法判断用户身份.Cookie实际上是一小段的文本信息(key-value格式).客户端向服务 ...
- java获取https网站证书,附带调用https:webservice接口
一.java 获取https网站证书: 1.创建一个java工程,新建InstallCert类,将以下代码复制进去 package com; import java.io.BufferedReader ...
- C#/VB.NET 获取电脑属性(硬盘ID、硬盘容量、Cpu序列号、MAC地址、系统类型)
在开发过程中,经常需要获取电脑的一些属性,如获取硬盘ID/CPU序列号/MAC地址作为来加密字符串. 1.硬盘 在我查看网上一些文档时,发现很多人对硬盘序列号很模糊~ 什么叫硬盘序列号?指的是作为一个 ...
- java获取图片原始尺寸
java获取图片原始尺寸 URL url = null; InputStream is = null; BufferedImage img = null; try { url = new URL(pi ...
随机推荐
- Java基础之用记事本编辑java代码运行,并且打成jar包后运行
使用记事本写java代码 1.在d盘新建一个记事本,名字叫做zhanzhuang.java,会询问不可用,是否继续,点击是 2.在里面编辑就如下内容,注意文件的名字要和 class 后面的名字相对应 ...
- treeMap 基于JDK 1.8的学习
困惑了很久的红黑树========来个了断吧 本文主要是为了描述旋转的原则,所以,至于红黑树的数据结构,红黑树的基本准则,不在强调,,红黑树困惑的就是这旋转的过程.!!! 画红黑树很简单的画图工具: ...
- C# 中奇妙的函数–String Split 和 Join
很多时候处理字符串数据,比如从文件中读取或者存入 - 我们可能需要加入分隔符(如CSV文件中的逗号),或使用一个分隔符来合并字符串序列. 很多人都知道使用split()的方法,但使用与其对应的Join ...
- jquery接触初级-----juqery DOM操作实例,动态图片显示
1. 要求:对一个a标签元素,当鼠标操作,移入时,显示a标签title属性的信息,鼠标移出时,隐藏a标签属性的title属性信息 a 标签本身的title 属性具有自我显示的特性,但是这个特性比较慢, ...
- Haskell语言学习笔记(86)字符串格式化与插值
String 的格式化 Text.Printf 这个模块用来处理字符串格式化. printf :: PrintfType r => String -> r printf 用于格式化字符串, ...
- Haskell语言开发工具
Stack How to Script with Stack Originate Guides - Haskell Tool Stack 配置 Intellij Idea IntelliJ plugi ...
- Android对接WebService -- The given SOAPAction http://webservice.ams.cnpc.com/getServerTime does not match an operation.
问题描述:Chrome Restlet下模拟请求出现如下问题 The given SOAPAction http://webservice.ams.cnpc.com/getServerTime doe ...
- Glide4 高效加载图片的配置【转】
原文: Glide4 高效加载图片的配置 https://www.jianshu.com/p/a079713f280f
- Linux初学时的一些常用命令(1)
查看帮助: man 命令 退出帮助目录: q 切换目录:cd cd 目录 cd 目录/目录 cd .. :上一级目录 cd / :根目录cd ~ :回家 创建目录和删除目录 mkdi ...
- 前端路由两种模式:hash、history
随着 ajax 的使用越来越广泛,前端的页面逻辑开始变得越来越复杂,特别是spa的兴起,前端路由系统随之开始流行. 从用户的角度看,前端路由主要实现了两个功能(使用ajax更新页面状态的情况下): 记 ...