获取常用系统的物理地址

来源:互联网 发布:百度大数据分析工具 编辑:程序博客网 时间:2024/06/07 03:02

获取系统的物理地址工具类:

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.HashSet;import java.util.Set;public class GetMacAddress{  public static String getOSName()  {    return System.getProperty("os.name").toLowerCase();  }  public static String getUnixMACAddress()  {    String mac = null;    BufferedReader bufferedReader = null;    Process process = null;    try    {      process = Runtime.getRuntime().exec("ifconfig eth0");      bufferedReader = new BufferedReader(new InputStreamReader(process        .getInputStream()));      String line = null;      int index = -1;      while ((line = bufferedReader.readLine()) != null)      {        index = line.toLowerCase().indexOf("hwaddr");        if (index != -1)        {          mac = line.substring(index + "hwaddr".length() + 1).trim();          break;        }      }    } catch (IOException e) {      e.printStackTrace();    } finally {      try {        if (bufferedReader != null) {          bufferedReader.close();        }      } catch (IOException e1) {        e1.printStackTrace();      }      bufferedReader = null;      process = null;    }    return mac;  }  public static String getLinuxMACAddress()  {    String mac = null;    BufferedReader bufferedReader = null;    Process process = null;    try    {      process = Runtime.getRuntime().exec("ifconfig eth0");      bufferedReader = new BufferedReader(new InputStreamReader(process        .getInputStream()));      String line = null;      int index = -1;      while ((line = bufferedReader.readLine()) != null)      {        String name = new String("硬件地址".getBytes("GBK"), "UTF-8");        index = line.toLowerCase().indexOf("硬件地址 ");        if ((index != -1) || (line.toLowerCase().indexOf(name) != -1))        {          mac = line.substring(index + 4).trim();          break;        }      }    } catch (IOException e) {      e.printStackTrace();    } finally {      try {        if (bufferedReader != null) {          bufferedReader.close();        }      } catch (IOException e1) {        e1.printStackTrace();      }      bufferedReader = null;      process = null;    }    return mac;  }  public static String getWindowsMACAddress()  {    String mac = null;    BufferedReader bufferedReader = null;    Process process = null;    try    {      process = Runtime.getRuntime().exec("ipconfig /all");      bufferedReader = new BufferedReader(new InputStreamReader(process        .getInputStream()));      String line = null;      int index = -1;      while ((line = bufferedReader.readLine()) != null)      {        index = line.indexOf("Physical Address");        String name = new String("物理地址".getBytes("GBK"), "UTF-8");        if ((index != -1) || (line.toLowerCase().indexOf(name) != -1) || (line.toLowerCase().indexOf("物理地址") != -1))        {          index = line.indexOf(":");          if (index == -1) {            break;          }          mac = line.substring(index + 1).trim();          break;        }      }    } catch (IOException e) {      e.printStackTrace();    } finally {      try {        if (bufferedReader != null) {          bufferedReader.close();        }      } catch (IOException e1) {        e1.printStackTrace();      }      bufferedReader = null;      process = null;    }    return mac;  }  public static Set getWindowSetMACAddress()  {    String mac = null;    BufferedReader bufferedReader = null;    Process process = null;    Set<String> nameSet = new HashSet();    try    {      process = Runtime.getRuntime().exec("ipconfig /all");      bufferedReader = new BufferedReader(new InputStreamReader(process        .getInputStream()));      String line = null;      int index = -1;      while ((line = bufferedReader.readLine()) != null)      {        index = line.indexOf("Physical Address");        String name = new String("物理地址".getBytes("GBK"), "UTF-8");        if ((index != -1) || (line.toLowerCase().indexOf(name) != -1) || (line.toLowerCase().indexOf("物理地址") != -1))        {          index = line.indexOf(":");          if (index != -1)          {            mac = line.substring(index + 1).trim();            nameSet.add(mac);          }        }      }    }    catch (IOException e)    {      e.printStackTrace();    } finally {      try {        if (bufferedReader != null) {          bufferedReader.close();        }      } catch (IOException e1) {        e1.printStackTrace();      }      bufferedReader = null;      process = null;    }    return nameSet;  }  public static Set getLinuxSetMACAddress()  {    String mac = null;    BufferedReader bufferedReader = null;    Process process = null;    Set<String> nameSet = new HashSet();    try    {      process = Runtime.getRuntime().exec("ifconfig eth0");      bufferedReader = new BufferedReader(new InputStreamReader(process        .getInputStream()));      String line = null;      int index = -1;      while ((line = bufferedReader.readLine()) != null)      {        String name = new String("硬件地址".getBytes("GBK"), "UTF-8");        index = line.toLowerCase().indexOf("硬件地址 ");        if ((index != -1) || (line.toLowerCase().indexOf(name) != -1))        {          mac = line.substring(index + 4).trim();          nameSet.add(mac);        }      }    } catch (IOException e) {      e.printStackTrace();    } finally {      try {        if (bufferedReader != null) {          bufferedReader.close();        }      } catch (IOException e1) {        e1.printStackTrace();      }      bufferedReader = null;      process = null;    }    return nameSet;  }  public static Set getUnixSetMACAddress()  {    String mac = null;    BufferedReader bufferedReader = null;    Process process = null;    Set<String> nameSet = new HashSet();    try    {      process = Runtime.getRuntime().exec("ifconfig eth0");      bufferedReader = new BufferedReader(new InputStreamReader(process        .getInputStream()));      String line = null;      int index = -1;      while ((line = bufferedReader.readLine()) != null)      {        index = line.toLowerCase().indexOf("hwaddr");        if (index != -1)        {          mac = line.substring(index + "hwaddr".length() + 1).trim();          nameSet.add(mac);        }      }    } catch (IOException e) {      e.printStackTrace();    } finally {      try {        if (bufferedReader != null) {          bufferedReader.close();        }      } catch (IOException e1) {        e1.printStackTrace();      }      bufferedReader = null;      process = null;    }    return nameSet;  }  public static String getMACAddress() {    String os = getOSName();    String mac = null;    if (os.startsWith("windows")) {      mac = getWindowsMACAddress();    } else if (os.startsWith("linux")) {      mac = getLinuxMACAddress();    } else {      mac = getUnixMACAddress();    }    return mac;  }  public static Set getMacSetAddress() {    String os = getOSName();    String mac = null;    Set<String> nameSet = new HashSet();    if (os.startsWith("windows")) {      nameSet = getWindowSetMACAddress();    } else if (os.startsWith("linux")) {      nameSet = getLinuxSetMACAddress();    } else {      nameSet = getUnixSetMACAddress();    }    return nameSet;  }  public static void main(String[] argc)  {    String os = getOSName();    System.out.println(os);    try    {      String aaa = "+i0Gc";      System.out.println(aaa.getBytes());    }    catch (Exception localException) {}    if (os.startsWith("windows")) {      String mac = getWindowsMACAddress();      System.out.println("本地是windows:" + mac);    } else if (os.startsWith("linux")) {      String mac = getLinuxMACAddress();      System.out.println("本地是Linux系统,MAC地址是:" + mac);    } else {      String mac = getUnixMACAddress();      System.out.println("本地是Unix系统 MAC地址是:" + mac);    }  }}