java擷取電腦部分資訊

來源:互聯網
上載者:User

標籤:factory   https   存在   set   led   lin   work   mis   網卡   

擷取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擷取電腦部分資訊

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.