如何获取客户端中的ip地址和mac地址

如何获取客户端中的ip地址和mac地址,第1张

/

 

 根据ip获取mac地址

 

/

public class GetMacAddress {

     public static String callCmd(String[] cmd) {  

         String result = "";  

         String line = "";  

         try {  

             Process proc = RuntimegetRuntime()exec(cmd);  

             InputStreamReader is = new InputStreamReader(procgetInputStream());  

             BufferedReader br = new BufferedReader (is);  

             while ((line = brreadLine ()) != null) {  

             result += line;  

             }  

         }  

         catch(Exception e) {  

             eprintStackTrace();  

         }  

         return result;  

     }

     

     

     /

      

       @param cmd  第一个命令

       @param another 第二个命令

       @return   第二个命令的执行结果

      /  

     public static String callCmd(String[] cmd,String[] another) {  

         String result = "";  

         String line = "";  

         try {  

             Runtime rt = RuntimegetRuntime();  

             Process proc = rtexec(cmd);  

             procwaitFor();  //已经执行完第一个命令,准备执行第二个命令  

             proc = rtexec(another);  

             InputStreamReader is = new InputStreamReader(procgetInputStream());  

             BufferedReader br = new BufferedReader (is);  

             while ((line = brreadLine ()) != null) {  

                 result += line;  

             }  

         }  

         catch(Exception e) {  

             eprintStackTrace();  

         }  

         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 = Patterncompile(regExp);  

         Matcher matcher = patternmatcher(sourceString);  

         while(matcherfind()){  

             result = matchergroup(1);  

             if(sourceStringindexOf(ip) <= sourceStringlastIndexOf(matchergroup(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) {          

         Systemoutprintln(getMacAddress("19216801"));

     }

   

}

随着互联网的不断发展,用户在访问互联网的时候使用的终端设备类型也在不断的变化,但是这些都是基于>

以上就是关于如何获取客户端中的ip地址和mac地址全部的内容,包括:如何获取客户端中的ip地址和mac地址、北大青鸟java培训:http协议请求处理过程、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9778184.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存