Java获取本机客户端(浏览器)的MAC地址
程序员文章站
2022-01-10 19:56:47
...
在日常的开发过程中,很多情况我们要回去浏览器的信息,比如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); }
若资源对你有帮助,浏览后有很大收获,不妨小额打赏我一下,你的鼓励是维持我不断写博客最大动力。
想获取DD博客最新代码,你可以扫描下方的二维码,关注DD博客微信公众号(ddblogs)。
或者你也可以关注我的新浪微博,了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)。
如对资源有任何疑问或觉得仍然有很大的改善空间,可以对该博文进行评论,希望不吝赐教。
为保证及时回复,可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)。
感谢你的访问,祝你生活愉快、工作顺心、欢迎常来逛逛。