Java获取本机客户端(浏览器)的MAC地址
2020-03-11 14:24:43  By: shinyuu

在日常的开发过程中,很多情况我们要回去浏览器的信息,比如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的留言板)

感谢你的访问,祝你生活愉快、工作顺心、欢迎常来逛逛。


猜你喜欢的

快速评论


技术评论

  • 该技术还没有评论、赶快抢沙发吧...
DD记账
top
+