java 获取windows Mac 和linux Mac

来源:互联网 发布:阿里云服务器添加域名 编辑:程序博客网 时间:2024/05/02 06:02
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Mac
{
    public static String getOSName()
    {
        return System.getProperty("os.name").toLowerCase();
    }
    
    public static String getMACAddress(String commond, String regular)
    {
        Pattern pattern = Pattern.compile(regular); //windows "..-..-..-..-..-.."
        String mac = null;
        BufferedReader bufferedReader = null;
        Process process = null;
        try
        {

            process = Runtime.getRuntime().exec(commond); //windows getmac
            bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            String line = null;
            while ((line = bufferedReader.readLine()) != null)
            {
                Matcher matcher = pattern.matcher(line);
                if (matcher.find())
                {
                    mac = matcher.group().replace("-", "");
                    break;
                }
            }
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
        finally
        {
            try
            {
                if (bufferedReader != null)
                {
                    bufferedReader.close();
                }
            }
            catch (IOException e1)
            {
                e1.printStackTrace();

            }
            bufferedReader = null;
            process = null;
        }
        if (mac==null||mac.isEmpty())
        {
            InetAddress addr;
            try
            {
                addr = InetAddress.getLocalHost();
                mac=addr.getHostAddress().replace(".", "");//getIP
            }
            catch (UnknownHostException e)
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
           
        }
        
        return mac;

    }
    
    public  static  String GetMacs(){
        
        String os = getOSName();
        
        if (os.startsWith("windows"))
        {
            return  getMACAddress("getmac", "..-..-..-..-..-..");
        }
        else
        {
            return  getMACAddress("ifconfig", "..:..:..:..:..:..");
        }
        
    }
   
}

原创粉丝点击