欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  技术分享

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的留言板)

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