zoukankan      html  css  js  c++  java
  • java获取本机ip,mac,

      1 import java.io.BufferedReader;   
      2 import java.io.IOException;   
      3 import java.io.InputStreamReader;   
      4   
      5 /**  
      6  * 获取MAC地址  
      7  * @author sunlightcs  
      8  *  
      9  */  
     10 public class GetMacAddress {   
     11   
     12       /**   
     13        *  获取当前操作系统名称.   
     14        *  return 操作系统名称 例如:windows,Linux,Unix等.   
     15       */     
     16      public static String getOSName() {     
     17          return System.getProperty("os.name").toLowerCase();     
     18      }     
     19               
     20      /**   
     21        * 获取Unix网卡的mac地址.   
     22       * @return mac地址   
     23       */     
     24      public static String getUnixMACAddress() {     
     25          String mac = null;     
     26          BufferedReader bufferedReader = null;     
     27          Process process = null;     
     28          try {     
     29                /**  
     30                 *  Unix下的命令,一般取eth0作为本地主网卡 显示信息中包含有mac地址信息    
     31                 */  
     32              process = Runtime.getRuntime().exec("ifconfig eth0");   
     33              bufferedReader = new BufferedReader(new InputStreamReader(process     
     34                      .getInputStream()));     
     35              String line = null;     
     36              int index = -1;     
     37              while ((line = bufferedReader.readLine()) != null) {     
     38                     /**  
     39                      *  寻找标示字符串[hwaddr]   
     40                      */  
     41                  index = line.toLowerCase().indexOf("hwaddr");    
     42                     /**  
     43                      * 找到了  
     44                      */  
     45                  if (index != -1) {     
     46                         /**  
     47                          *   取出mac地址并去除2边空格    
     48                          */  
     49                      mac = line.substring(index +"hwaddr".length()+ 1).trim();   
     50                      break;     
     51                  }     
     52              }     
     53          } catch (IOException e) {     
     54              e.printStackTrace();     
     55          } finally {     
     56              try {     
     57                  if (bufferedReader != null) {     
     58                      bufferedReader.close();     
     59                  }     
     60              } catch (IOException e1) {     
     61                 e1.printStackTrace();     
     62             }     
     63              bufferedReader = null;     
     64              process = null;     
     65          }     
     66       
     67          return mac;     
     68      }     
     69           
     70             
     71             
     72          /**   
     73            * 获取Linux网卡的mac地址.   
     74           * @return mac地址   
     75           */     
     76          public static String getLinuxMACAddress() {     
     77              String mac = null;     
     78              BufferedReader bufferedReader = null;     
     79              Process process = null;     
     80              try {     
     81                    /**  
     82                     *  linux下的命令,一般取eth0作为本地主网卡 显示信息中包含有mac地址信息    
     83                     */  
     84                  process = Runtime.getRuntime().exec("ifconfig eth0");   
     85                  bufferedReader = new BufferedReader(new InputStreamReader(process     
     86                          .getInputStream()));     
     87                  String line = null;     
     88                  int index = -1;     
     89                  while ((line = bufferedReader.readLine()) != null) {     
     90                      index = line.toLowerCase().indexOf("硬件地址");    
     91                         /**  
     92                          * 找到了  
     93                          */  
     94                      if (index != -1) {     
     95                             /**  
     96                              *   取出mac地址并去除2边空格    
     97                              */  
     98                          mac = line.substring(index+4).trim();   
     99                          break;     
    100                      }     
    101                  }     
    102              } catch (IOException e) {     
    103                  e.printStackTrace();     
    104              } finally {     
    105                  try {     
    106                      if (bufferedReader != null) {     
    107                          bufferedReader.close();     
    108                      }     
    109                  } catch (IOException e1) {     
    110                     e1.printStackTrace();     
    111                 }     
    112                  bufferedReader = null;     
    113                  process = null;     
    114              }   
    115           
    116              return mac;     
    117          }   
    118             
    119          /**   
    120           * 获取widnows网卡的mac地址.   
    121           * @return mac地址   
    122           */     
    123          public static String getWindowsMACAddress() {     
    124              String mac = null;     
    125              BufferedReader bufferedReader = null;     
    126              Process process = null;     
    127              try {     
    128                    /**  
    129                     * windows下的命令,显示信息中包含有mac地址信息    
    130                     */  
    131                  process = Runtime.getRuntime().exec("ipconfig /all");   
    132                  bufferedReader = new BufferedReader(new InputStreamReader(process     
    133                          .getInputStream()));     
    134                  String line = null;     
    135                  int index = -1;     
    136                  while ((line = bufferedReader.readLine()) != null) {     
    137                         /**  
    138                          *  寻找标示字符串[physical address]   
    139                          */  
    140                      index = line.toLowerCase().indexOf("physical address");    
    141                      if (index != -1) {   
    142                          index = line.indexOf(":");   
    143                          if (index != -1) {   
    144                                 /**  
    145                                  *   取出mac地址并去除2边空格  
    146                                  */  
    147                             mac = line.substring(index + 1).trim();    
    148                         }   
    149                          break;     
    150                      }   
    151                  }   
    152              } catch (IOException e) {     
    153                  e.printStackTrace();     
    154              }finally {     
    155                  try {     
    156                      if (bufferedReader != null) {     
    157                          bufferedReader.close();     
    158                        }     
    159                  }catch (IOException e1) {     
    160                      e1.printStackTrace();     
    161                    }     
    162                  bufferedReader = null;     
    163                  process = null;     
    164              }     
    165           
    166              return mac;     
    167          }     
    168           
    169          /**   
    170           * 测试用的main方法.   
    171           *    
    172           * @param argc   
    173          *            运行参数.   
    174           */     
    175          public static void main(String[] argc) {     
    176              String os = getOSName();     
    177              System.out.println(os);     
    178              if(os.startsWith("windows")){     
    179                  String mac = getWindowsMACAddress();     
    180                  System.out.println("本地是windows:"+mac);     
    181              }else if(os.startsWith("linux")){     
    182                    String mac = getLinuxMACAddress();     
    183                  System.out.println("本地是Linux系统,MAC地址是:"+mac);   
    184              }else{     
    185                  String mac = getUnixMACAddress();                         
    186                  System.out.println("本地是Unix系统 MAC地址是:"+mac);   
    187              }     
    188          }     
    189 }
    如果有使用请标明来源:http://www.cnblogs.com/duwenlei/
  • 相关阅读:
    FastDFS的配置、部署与API使用解读(6)FastDFS配置详解之Storage配置(转)
    WEB服务器防盗链_HttpAccessKeyModule_Referer(Nginx&&PHP)
    php检查是否是数字和字母
    为什么要使用Docker?
    TP5整合 WorkerMan 以及 GatewayWorker
    PHP基于ThinkPHP5的砍价活动相关设计
    Git (gnome-ssh-askpass:3871): Gtk-WARNING **: cannot open display:
    B2B2C商品模块数据库设计
    PHP开发中多种方案实现高并发下的抢购、秒杀功能
    Linux CentOs集群LVS+Keepalived负载均衡的实现
  • 原文地址:https://www.cnblogs.com/duwenlei/p/3607840.html
Copyright © 2011-2022 走看看