java Servlet 访问本机Mac地址

部分代码转载:

Step1:源代码

	//获取服务器端的MacAddress
    public static String getMacAddress() {     
        String os = getOSName();     
        System.out.println(os);     
        if(os.startsWith("windows")){     
            macaddress = getWindowsMACAddress();     
            System.out.println("本地是windows:"+macaddress);     
        }else if(os.startsWith("linux")){     
            macaddress = getLinuxMACAddress();     
            System.out.println("本地是Linux系统,MAC地址是:"+macaddress);   
        }else{     
            macaddress = getUnixMACAddress();                         
            System.out.println("本地是Unix系统 MAC地址是:"+macaddress);   
        }   
        return macaddress;
    }
  
      /**   
       *  获取当前操作系统名称.   
       *  return 操作系统名称 例如:windows,Linux,Unix等.   
      */     
     public static String getOSName() {     
         return System.getProperty("os.name").toLowerCase();     
     }     
 
     /**   
       * 获取Unix网卡的mac地址.
      * @return mac地址   
      */     
     public static String getUnixMACAddress() {     
         String mac = null;     
         BufferedReader bufferedReader = null;     
         Process process = null;     
         try {     
               /**  
                *  Unix下的命令,一般取eth0作为本地主网卡 显示信息中包含有mac地址信息    
                */  
             process = Runtime.getRuntime().exec("ifconfig eth0");
             bufferedReader = new BufferedReader(new InputStreamReader(process     
                     .getInputStream()));     
             String line = null;     
             int index = -1;     
             while ((line = bufferedReader.readLine()) != null) {     
                    /**  
                     *  寻找标示字符串[hwaddr]   
                     */  
                 index = line.toLowerCase().indexOf("hwaddr");    
                    /**  
                     * 找到了  
                     */  
                 if (index != -1) {     
                        /**  
                         *   取出mac地址并去除2边空格    
                         */  
                     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;     
         }     

         /**   
           * 获取Linux网卡的mac地址.   
          * @return mac地址   
          */     
         public static String getLinuxMACAddress() {     
             String mac = null;     
             BufferedReader bufferedReader = null;     
             Process process = null;     
             try {     
                   /**  
                    *  linux下的命令,一般取eth0作为本地主网卡 显示信息中包含有mac地址信息    
                    */  
                 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("硬件地址");    
                        /**  
                         * 找到了  
                         */  
                     if (index != -1) {     
                            /**  
                             *   取出mac地址并去除2边空格    
                             */  
                         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;     
         }   
            
         /**   
          * 获取widnows网卡的mac地址.   
          * @return mac地址   
          */     
         public static String getWindowsMACAddress() {     
             String mac = null;     
             BufferedReader bufferedReader = null;     
             Process process = null;     
             try {     
                   /**  
                    * windows下的命令,显示信息中包含有mac地址信息    
                    */  
                 process = Runtime.getRuntime().exec("ipconfig /all");
                 bufferedReader = new BufferedReader(new InputStreamReader(process
                         .getInputStream()));     
                 String line = null;     
                 int index = -1;     
                 while ((line = bufferedReader.readLine()) != null) {     
                        /**  
                         *  寻找标示字符串[physical address]   
                         */  
                     index = line.toLowerCase().indexOf("物理地址");//physical address
                     if (index != -1) {   
                         index = line.indexOf(":");   
                         if (index != -1) {   
                                /**  
                                 *   取出mac地址并去除2边空格  
                                 */  
                            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;     
         }  

Step2:

运行结果:

------------------------获取服务器端本地的mac address == 10-78-D2-F6-3B-76





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值