在日常的开发过程中,很多情况我们要回去浏览器的信息,比如MAC地址等,那么今天就来看看在Java中,这么获取客户端(浏览器)的MAC地址,以及IP地址。
1.获取IP方式
public static String getIpAddress(HttpServletRequest request) { String ip = request.getHeader("X-real-ip"); if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("x-forwarded-for"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_CLIENT_IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_X_FORWARDED_FOR"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } return ip; }
2.通过IP获取Mac地址
static String getMacAddrByIp(String ip) { String macAddr = null; try { Process process = Runtime.getRuntime().exec("nbtstat -a " ip); BufferedReader br = new BufferedReader( new InputStreamReader(process.getInputStream())); Pattern pattern = Pattern.compile("([A-F0-9]{2}-){5}[A-F0-9]{2}"); Matcher matcher; for (String strLine = br.readLine(); strLine != null; strLine = br.readLine()) { matcher = pattern.matcher(strLine); if (matcher.find()) { macAddr = matcher.group(); break; } } } catch (IOException e) { e.printStackTrace(); } System.out.println(macAddr); return macAddr; } public static void main(String[] args) { String ip = "192.168.8.59"; getMacAddrByIp(ip); }
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。