Q:

Java program to get System Motherboard Serial Number for Windows or Linux Machine

belongs to collection: Java Most Popular & Searched Programs

0

Java program to get System Motherboard Serial Number for Windows or Linux Machine

All Answers

need an explanation for this answer? contact us directly to get an explanation for this answer

Get System Motherboard Serial Number of Linux or Windows based Machine: This java program will get and print the Motherboard Serial Number of Linux or Windows Operating System based Machines.

package com.includehelp;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileWriter;
import java.io.InputStreamReader;

/**
 * Program to get System Motherboard Serial Number for Windows and Linux Machine
 * @author includehelp
 */
public class SystemMotherBoardNumber {
    
    /** 
     * Method for get System Motherboard Serial Number
     * @return  MAC Address
     */
    public static String getSystemMotherBoard_SerialNumber(){
        try{
            String OSName=  System.getProperty("os.name");
            if(OSName.contains("Windows")){
                return (getWindowsMotherboard_SerialNumber());
            }
            else{
                return (GetLinuxMotherBoard_serialNumber());
            }
        }
        catch(Exception E){
            System.err.println("System MotherBoard Exp : "+E.getMessage());
            return null;
        }
    }
    
    /**
     * Method for get Windows Machine MotherBoard Serial Number
     * @return 
     */
    private static String getWindowsMotherboard_SerialNumber() {
        String result = "";
        try {
            File file = File.createTempFile("realhowto",".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_BaseBoard") \n"
              + "For Each objItem in colItems \n"
              + "    Wscript.Echo objItem.SerialNumber \n"
              + "    exit for  ' do the first cpu only! \n"
              + "Next \n";

            fw.write(vbs);
            fw.close();

            Process p = Runtime.getRuntime().exec("cscript //NoLogo " + file.getPath());
            BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
            String line;
            while ((line = input.readLine()) != null) {
               result += line;
            }
            input.close();
        }
        catch(Exception E){
             System.err.println("Windows MotherBoard Exp : "+E.getMessage());
        }
        return result.trim();
    } 
    
    
    /**
     * Method for get Linux Machine MotherBoard Serial Number
     * @return 
     */
    private static String GetLinuxMotherBoard_serialNumber() {
        String command = "dmidecode -s baseboard-serial-number";
        String sNum = null; 
        try {   
            Process SerNumProcess = Runtime.getRuntime().exec(command);
            BufferedReader sNumReader = new BufferedReader(new InputStreamReader(SerNumProcess.getInputStream()));
            sNum = sNumReader.readLine().trim();
            SerNumProcess.waitFor();
            sNumReader.close();
        }
        catch (Exception ex) {
            System.err.println("Linux Motherboard Exp : "+ex.getMessage());
            sNum =null;
        }
        return sNum; 
    }
    
    public static void main(String[] args) {
        String motherBoard_SerialNumber = getSystemMotherBoard_SerialNumber();
        System.out.println("MotherBoard Serial Number : "+motherBoard_SerialNumber);
    }
   
}

Output

MotherBoard Serial Number : TFFWB10WB0P4AF

 

need an explanation for this answer? contact us directly to get an explanation for this answer

total answers (1)

Java program to get System Name for Windows or Lin... >>
<< Java program to get System MAC Address of Windows ...