package com.simonjia.util.other;

import java.net.InetAddress;import java.net.InterfaceAddress;import java.net.NetworkInterface;import java.util.ArrayList;import java.util.List;import java.util.stream.Collectors;

public class MacTools {    /***因为一台机器不一定只有一个网卡呀,所以返回的是数组是很合理的***/    public static List<String> getMacList() throws Exception {        java.util.Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces();        StringBuilder sb = new StringBuilder();        ArrayList<String> tmpMacList = new ArrayList<>();        while (en.hasMoreElements()) {            NetworkInterface iface = en.nextElement();            List<InterfaceAddress> addrs = iface.getInterfaceAddresses();            for (InterfaceAddress addr : addrs) {                InetAddress ip = addr.getAddress();                NetworkInterface network = NetworkInterface.getByInetAddress(ip);                if (network == null) {                    continue;                }                byte[] mac = network.getHardwareAddress();                if (mac == null) {                    continue;                }                sb.delete(0, sb.length());                for (int i = 0; i < mac.length; i++) {                    sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));                }                tmpMacList.add(sb.toString());            }        }        if (tmpMacList.size() <= 0) {            return tmpMacList;        }        /***去重,别忘了同一个网卡的ipv4,ipv6得到的mac都是一样的,肯定有重复,下面这段代码是。。流式处理***/        List<String> unique = tmpMacList.stream().distinct().collect(Collectors.toList());        return unique;    }

    public static void main(String[] args) throws Exception {        long a = System.currentTimeMillis();        System.out.println("进行 multi net address 测试===》");        List<String> macs = getMacList();        long b = System.currentTimeMillis();        System.out.println("本机的mac网卡的地址有:" + macs);        System.out.println("总耗时----" + (b - a) + "-----ms");    }}

这个只能拿到服务本机的mac地址,对于远程请求获取请求者的mac信息并不适用……

获取来访者ip信息----:https://www.cnblogs.com/SimonHu1993/p/11015069.html

博主原文太长,只取精华-0-  详细可见:https://blog.csdn.net/cdnight/article/details/86741265

转载于:https://www.cnblogs.com/SimonHu1993/p/11014786.html

java获取本机mac物理地址相关推荐

  1. 使用java获取本机mac

    不开心,辛苦写的第一篇文章不小心删除了还恢复不了 想用java 获得本机地址,搜了下,觉得这个看起来不错,简洁 import java.net.InetAddress; import java.net ...

  2. java 获取本机mac地址并转为字符串

    2019独角兽企业重金招聘Python工程师标准>>> public  String getMacAddress() throws Exception{         InetAd ...

  3. Java获取本机的ip地址和Mac地址

    Java获取本机的ip地址 //得到IP,InetAddress ia = InetAddress.getLocalHost();String ip=ia.toString().split(" ...

  4. Unity——获取本机MAC地址

    Unity中获取本机Mac地址,常用于类似绑定设备的加密情况中,限制程序只可以在固定的设备上使用.首先我们需要在脚本中引用System.Net.NetworkInformation程序集,然后使用Ne ...

  5. golang网络编程:获取本机MAC地址

    对于IP地址可以表示一个网络连接,但是无法唯一标识一台主机,而MAC地址是主机网卡的物理地址,这个对于一台主机来说是不会改变的. func mac(){// 获取本机的MAC地址interfaces, ...

  6. java 获取用户的MAC地址多种方法实例详解

    java 获取用户的MAC地址多种方法实例详解 这篇文章主要介绍了JAVA实现获取用户的MAC地址的多种方法实例,需要的朋友可以参考下 java实现获取用户的MAC地址方法: 方法一:将本机地址与局域 ...

  7. JAVA获取机器的MAC地址

    JAVA获取机器的MAC地址 需求:获取机器的mac地址 问题:一些国产操作系统获取不到MAC地址,以下搜集了一些获取mac地址的方法 1.获取MAC地址 ps:该方法在银河麒麟中可用 public ...

  8. java 获取已有字体,java获取本机全部可用字体

    java获取本机所有可用字体 //just for fun,那个28个字母的函数满满都是恶心 import java.awt.GraphicsEnvironment ; class Tester { ...

  9. android 获取网卡mac_Android获取本机Mac地址及IP地址方法

    1.Android  获取本机Mac 地址方法: 需要在AndroidManifest.xml文件中添加权限: public String getLocalMacAddress() { WifiMan ...

最新文章

  1. 一个 TCP 连接可以发多少个 HTTP 请求?
  2. ubuntu配置java_Ubuntu 16.04下Java环境安装与配置
  3. Study Linux --- Shell Script
  4. c++基础(part1)--cpp简介
  5. thinkphp内置标签简单讲解
  6. 通过data目录恢复数据库数据(mysql5.7.22)
  7. Docker学习总结(58)——Dockerfile中,ADD和COPY的区别?
  8. 利用Mahout实现在Hadoop上运行K-Means算法
  9. 保护心灵窗口——防蓝光软件f.lux
  10. 21天通关python 磁力_利用python爬取天天看美剧磁力链接
  11. STM32的ADC多通道采集的实现
  12. 癌症/肿瘤免疫治疗最新进展(2022年3月)
  13. STM32精英板连接wifi,通过指令控制继电器
  14. 僵尸进程(Zombie process )
  15. 点线面的意义_聊聊「点线面」的概念
  16. 电子邮箱的格式怎么填?外贸电子邮件填写的正确格式
  17. 肝进ICU,万字真言点化八大排序——我奶奶都看得懂的算法详解
  18. c位边上还有什么位_λ(c位旁边二个位置叫什么)
  19. 给“四时有惑”播客招募几位志愿者
  20. 推荐免费的svn空间

热门文章

  1. 计算机能不能升级固态硬盘,旧电脑升级SSD注意什么 电脑升级固态硬盘与内存注意事项【图文】...
  2. 阿里云ACP认证普尔文线上考试场预约指引
  3. 东软集团、红星美凯龙、TCL、中国移动都在用的自动化测试工具
  4. 几个好用搜索福利网站
  5. MySQL数据库之索引
  6. python3的中文乱码问题
  7. es6 数值 bigint
  8. 系统之家U盘 无线鼠标底部灯不亮怎么解决
  9. android 智能笔连接,即时同步书写显示 Neo smartpen N2智能笔
  10. gb18030 mysql_GB18030和UTF-8有啥区别