<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    午后星期午

    通過java獲取mac地址

    package  cc.wshao.util;

    import  java.io.BufferedReader;
    import  java.io.InputStreamReader;
    import  java.util.regex.Matcher;
    import  java.util.regex.Pattern;

    public   class  GetMacAddress {
         
         
    public   static  String callCmd(String[] cmd) {  
             String result 
    =   "" ;  
             String line 
    =   "" ;  
             
    try  {  
                 Process proc 
    =  Runtime.getRuntime().exec(cmd);  
                 InputStreamReader is 
    =   new  InputStreamReader(proc.getInputStream());  
                 BufferedReader br 
    =   new  BufferedReader (is);  
                 
    while  ((line  =  br.readLine ())  !=   null ) {  
                 result 
    +=  line;  
                 }  
             }  
             
    catch (Exception e) {  
                 e.printStackTrace();  
             }  
             
    return  result;  
         }
         
         
         
         
         
    /**  
          * 
          * 
    @param  cmd  第一個命令 
          * 
    @param  another 第二個命令 
          * 
    @return    第二個命令的執行結果 
          
    */   
         
    public   static  String callCmd(String[] cmd,String[] another) {  
             String result 
    =   "" ;  
             String line 
    =   "" ;  
             
    try  {  
                 Runtime rt 
    =  Runtime.getRuntime();  
                 Process proc 
    =  rt.exec(cmd);  
                 proc.waitFor();  
    // 已經執行完第一個命令,準備執行第二個命令  
                 proc  =  rt.exec(another);  
                 InputStreamReader is 
    =   new  InputStreamReader(proc.getInputStream());  
                 BufferedReader br 
    =   new  BufferedReader (is);  
                 
    while  ((line  =  br.readLine ())  !=   null ) {  
                     result 
    +=  line;  
                 }  
             }  
             
    catch (Exception e) {  
                 e.printStackTrace();  
             }  
             
    return  result;  
         }
         
         
         
         
    /**  
          * 
          * 
    @param  ip  目標ip,一般在局域網內 
          * 
    @param  sourceString 命令處理的結果字符串 
          * 
    @param  macSeparator mac分隔符號 
          * 
    @return   mac地址,用上面的分隔符號表示 
          
    */   
         
    public   static  String filterMacAddress( final  String ip,  final  String sourceString, final  String macSeparator) {  
             String result 
    =   "" ;  
             String regExp 
    =   " ((([0-9,A-F,a-f]{1,2} "   +  macSeparator  +   " ){1,5})[0-9,A-F,a-f]{1,2}) " ;  
             Pattern pattern 
    =  Pattern.compile(regExp);  
             Matcher matcher 
    =  pattern.matcher(sourceString);  
             
    while (matcher.find()){  
                 result 
    =  matcher.group( 1 );  
                 
    if (sourceString.indexOf(ip)  <=  sourceString.lastIndexOf(matcher.group( 1 ))) {  
                     
    break ;   // 如果有多個IP,只匹配本IP對應的Mac.  
                 }  
             }
       
             
    return  result;  
         }
         
         
         
         
    /**  
          * 
          * 
    @param  ip 目標ip 
          * 
    @return    Mac Address 
          * 
          
    */   
         
    public   static  String getMacInWindows( final  String ip){  
             String result 
    =   "" ;  
             String[] cmd 
    =  {  
                     
    " cmd " ,  
                     
    " /c " ,  
                     
    " ping  "   +   ip  
                     };  
             String[] another 
    =  {  
                     
    " cmd " ,  
                     
    " /c " ,  
                     
    " arp -a "   
                     };  
       
             String cmdResult 
    =  callCmd(cmd,another);  
             result 
    =  filterMacAddress(ip,cmdResult, " - " );  
       
             
    return  result;  
         }  
       
       
         
    /**  
         * 
         * 
    @param  ip 目標ip 
         * 
    @return    Mac Address 
         * 
         
    */   
         
    public   static  String getMacInLinux( final  String ip){  
             String result 
    =   "" ;  
             String[] cmd 
    =  {  
                     
    " /bin/sh " ,  
                     
    " -c " ,  
                     
    " ping  "   +   ip  +   "  -c 2 && arp -a "   
                     };  
             String cmdResult 
    =  callCmd(cmd);  
             result 
    =  filterMacAddress(ip,cmdResult, " : " );  
       
             
    return  result;  
         }  
         
         
    /**
          * 獲取MAC地址 
          * 
    @return  返回MAC地址
          
    */
         
    public   static  String getMacAddress(String ip){
             String macAddress 
    =   "" ;
             macAddress 
    =  getMacInWindows(ip).trim();
             
    if (macAddress == null || "" .equals(macAddress)){
                 macAddress 
    =  getMacInLinux(ip).trim();
             }
             
    return  macAddress;
         }
       
         
    /**  
         * 測試 
         
    */   
         
    public   static   void  main(String[] args) {           
             System.out.println(getMacAddress(
    " 192.168.10.203 " ));
         }
         

    }

    posted on 2013-12-31 13:58 午后星期午 閱讀(130) 評論(0)  編輯  收藏 所屬分類: Java

    主站蜘蛛池模板: 亚洲高清国产拍精品26U| 免费AA片少妇人AA片直播| 一级毛片免费视频网站| 午夜电影免费观看| 亚洲中文字幕乱码一区| 全免费毛片在线播放| 亚洲国产成人久久精品app| 免费视频爱爱太爽了| 亚洲成人黄色在线| 最新猫咪www免费人成| 亚洲人成色77777在线观看| 国产精品成人四虎免费视频| 色欲色欲天天天www亚洲伊| 又色又污又黄无遮挡的免费视| 久久精品国产亚洲AV果冻传媒 | 成年午夜视频免费观看视频| 亚洲色成人网站WWW永久四虎| 免费的一级片网站| 特级毛片A级毛片100免费播放| 精品国产日韩亚洲一区| 伊人免费在线观看| 久久亚洲国产精品成人AV秋霞| 日本成年免费网站| 日韩精品无码永久免费网站| 亚洲美女高清一区二区三区| 免费看搞黄视频网站| 亚洲国产成人久久综合一区| 全黄性性激高免费视频| 色www永久免费| 亚洲国产成+人+综合| 国产性生交xxxxx免费| 99视频在线观看免费| 亚洲成AV人片久久| 亚洲?v无码国产在丝袜线观看| 亚洲欧洲日韩极速播放| 四虎成人精品在永久免费| 你是我的城池营垒免费看 | 国产免费av片在线看| 成年网在线观看免费观看网址 | 亚洲线精品一区二区三区影音先锋| 精品一区二区三区免费毛片爱|