<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 午后星期午 閱讀(125) 評論(0)  編輯  收藏 所屬分類: Java

    主站蜘蛛池模板: 午夜亚洲AV日韩AV无码大全| 在线亚洲精品自拍| 久久免费精彩视频| 在线观看免费人成视频色9| 亚洲一区二区在线免费观看| 99在线观看精品免费99| 日本a级片免费看| 无码专区—VA亚洲V天堂| 免费人成网站在线观看不卡| 国产大片91精品免费观看男同| 亚洲VA中文字幕无码毛片 | 无人视频免费观看免费视频| 免费国产成人高清在线观看麻豆| 亚洲女人18毛片水真多| 免费电影在线观看网站| 在线播放亚洲精品| 亚洲乱码中文字幕久久孕妇黑人| 免费人成在线观看网站| 亚洲av日韩av综合| 亚洲成AⅤ人影院在线观看| 亚洲国产视频久久| 免费看国产精品麻豆| 免费看无码特级毛片| 亚洲国产中文字幕在线观看| 中文在线观看免费网站| 亚洲理论在线观看| 国产大片线上免费看| 久久香蕉国产线看免费| 亚洲欧洲无卡二区视頻| xvideos亚洲永久网址| 久久精品国产亚洲AV| 亚洲熟妇无码八AV在线播放| www视频在线观看免费| 黄色三级三级三级免费看| 日本xxwwxxww在线视频免费| 在线观看人成视频免费无遮挡| 亚洲av无码国产综合专区| 亚洲av无码成人精品区| 无码国产精品一区二区免费| 亚洲福利秒拍一区二区| avtt亚洲天堂|