啦啦啦
package com.xindatai.common.util; import java.io.InputStream; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Lime { public static void main(String[] args) throws Exception { String mac = getMacAdderss("192.168.10.10"); System.out.println(mac); } /** * 获取mac地址 * * @author Liang * * 2017年4月26日 */ private static String getMacAdderss(String ip) throws Exception { if(ping(ip)){ String result = command("arp -a " + ip); String regExp = "([0-9A-Fa-f]{2})([-:][0-9A-Fa-f]{2}){5}"; Pattern pattern = Pattern.compile(regExp); Matcher matcher = pattern.matcher(result); StringBuilder mac = new StringBuilder(); // 对字符串进行匹配,匹配到的字符串可以在任何位置 while(matcher.find()){ // 返回匹配到的子字符串 String temp = matcher.group(); mac.append(temp); } return mac.toString(); } return null; } /** * ping ip * * @param ip * * @return * * @author Liang * * 2017年4月26日 */ private static boolean ping(String ip) throws Exception { String os = getOsName(); String ping = ""; if(os.startsWith("Windows")){ ping = "ping " + ip + " -n 2"; }else if(os.startsWith("Linux")){ ping = "ping " + ip + " -c 2"; } String result = command(ping); if(result.contains("TTL") || result.contains("ttl")){ return true; } return false; } /** * 执行单条指令 * * @param cmd 命令 * * @return 执行结果 * * @author Liang * * 2017年4月26日 */ private static String command(String cmd) throws Exception { Process process = Runtime.getRuntime().exec(cmd); process.waitFor(); InputStream in = process.getInputStream(); StringBuilder result = new StringBuilder(); byte[] data = new byte[256]; while(in.read(data) != -1){ // 操作系统中的编码方式 String encoding = System.getProperty("sun.jnu.encoding"); result.append(new String(data,encoding)); } return result.toString(); } private static String getOsName() { return System.getProperty("os.name"); } }
啦啦啦