JAVA获取机器的MAC地址

需求:获取机器的mac地址

问题:一些国产操作系统获取不到MAC地址,以下搜集了一些获取mac地址的方法

1.获取MAC地址

ps:该方法在银河麒麟中可用

public static String getMAC() throws SocketException {Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();while(networkInterfaces.hasMoreElements()) {NetworkInterface network = networkInterfaces.nextElement();log.info("network:{}", network);byte[] mac = network.getHardwareAddress();if(mac == null) {log.warn("mac is null");} else {StringBuilder sb = new StringBuilder();for (int i = 0; i < mac.length; i++) {sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));}log.info("MAC address : {} ", sb);if (!"".equals(sb.toString())) {return sb.toString();}break;}}return "";}

2.获取MAC地址

在UOS系统中可用

public static List<String> getMacAddress() {ArrayList<String> macs = new ArrayList<>();try {Enumeration<NetworkInterface> allNetInterfaces = NetworkInterface.getNetworkInterfaces();byte[] mac = null;while (allNetInterfaces.hasMoreElements()) {NetworkInterface netInterface = (NetworkInterface) allNetInterfaces.nextElement();if (netInterface.isLoopback() || netInterface.isVirtual() || netInterface.isPointToPoint() || !netInterface.isUp()) {continue;} else {mac = netInterface.getHardwareAddress();if (mac != null) {StringBuilder sb = new StringBuilder();for (int i = 0; i < mac.length; i++) {sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? ":" : ""));}if (sb.length() > 0) {macs.add(sb.toString().toLowerCase());}}}}log.info("获取的mac地址为:{}", macs);return macs;} catch (Exception e) {log.error("MAC地址获取失败", e);}return Collections.emptyList();}

3.获取Linux的MAC地址

public static List<String> getLinuxMACAddress() {List<String> macs = new ArrayList<>();BufferedReader bufferedReader = null;Process process = null;try {process = Runtime.getRuntime().exec("ifconfig -a");bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));String line = null;int index = -1;while ((line = bufferedReader.readLine()) != null) {index = line.toLowerCase().indexOf("硬件地址");String mac = "";if (index != -1) {mac = line.substring(index + 4).trim();macs.add(mac.toLowerCase());}}} catch (IOException e) {e.printStackTrace();} finally {try {if (bufferedReader != null) {bufferedReader.close();}} catch (IOException e1) {e1.printStackTrace();}bufferedReader = null;process = null;}log.info("MAC address :{}", macs);return macs;}

4.获取windows的mac地址

public static List<String> getMACAddressByWindows() throws Exception {ArrayList<String> rs = new ArrayList<>();String result = "";Process process = Runtime.getRuntime().exec("ipconfig /all");BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream(), "GBK"));int index = -1;String line;while ((line = br.readLine()) != null) {index = line.indexOf("物理地址");if (index >= 0) {index = line.indexOf(":");if (index >= 0) {result = line.substring(index + 1).trim();}rs.add(result.toUpperCase());}}br.close();log.info("Mac address : {}",rs);return rs;}

JAVA获取机器的MAC地址相关推荐

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

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

  2. Java获取客户端的mac地址

    我是小韩,这一次和大家分享一下如何获取客户端的mac地址,在开发中,我们会遇到想进行主机安全的认证,简单一点的就是通过mac地址来认证,不是这台电脑的用户不允许登录,可以通过添加自己允许的mac进行认 ...

  3. java获取网卡的mac地址

    为了项目的安全,有时候需要得到电脑的唯一码,比如:网卡的mac地址.和大家分享一下,下面是项目中用到的工具类: import java.io.BufferedReader; import java.i ...

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

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

  5. android 获取mac c语言,获取设备的mac地址和IP地址(android6.0以上专用)

    /** * 获取设备HardwareAddress地址 * @return */ public static String getMachineHardwareAddress(){ Enumerati ...

  6. 第三方机构能获取我的MAC地址吗?

    有关浏览器指纹识别,我们最常被问到的问题是,我们是否可以隐藏MAC地址?对注重隐私的业务来说,这意味着什么?换一种更直接的说法--网站或第三方机构是否可以获取我的MAC地址?就这一问题,我们展开了调查 ...

  7. Android中获取手机 IMEI Mac地址 IP地址

    一.获取手机IMEI 手机在生产时,每部手机均有一个唯一的标识(ID),国际上采用国际移动设备身份码(IMEI, International Mobile Equipment Identity).IM ...

  8. Windows获取本机MAC地址方法(C语言)

    Windows获取本机MAC地址方法(C语言) 用到的方法有两种:Netbios()和GetAdaptersInfo(); Netbios 获取步骤主要分为三步: 一.枚举本机所有LAN 二.重设每个 ...

  9. 获取远程网卡MAC地址

    出自: http://blog.joycode.com/liuhuimiao/ 朋友mingal急问我有关获取远程网卡MAC地址的ASP.net实现.我一开始以为是获取本机MAC地址,说了几种方法给他 ...

最新文章

  1. YII2 models非常好用的控制输出数据【重写Fields】
  2. idea编译项目 失败_在IntelliJ IDEA下使用Lombok时无法编译项目
  3. LISP 圆孔标记_lisp使用说明
  4. 位运算与组合搜索(二)
  5. Spring-data-redis入门
  6. javabean自定义组件
  7. 【转】Android - 文件读写操作 总结
  8. 卷积神经网络流程图_基于卷积神经网络的叶片气孔自动计数方法
  9. 根据中心点、半径长度和角度画点
  10. 消费分期群体-在校大学生和职场白领
  11. [转]ISO镜像工具PowerISO和UltraISO制作ISO光盘镜像教程
  12. MySQL:设置字段默认为当前时间
  13. 一旦辞职,应该立即批准。留一段时间没有好处
  14. VS Code C语言开发环境配置附图版保姆教程
  15. 广告的术语和简称大全
  16. 矩阵分析与应用(12)
  17. firebird嵌入版数据使用
  18. 第一篇文章 关于道德经
  19. 【Nav2中文网】七、配置指南(三)行为树XML节点 之 控制插件--RoundRobin
  20. AD(活动目录)详解

热门文章

  1. 全年财报背后:小米的命Redmi定
  2. html audio标签无效,HTML5的audio标签设置currentTime无效解决方案
  3. 十种最神奇的快速减肥偏方
  4. JS 校验18位身份证号码正确性,出生年月日校验,校验码判断
  5. Genymotion模拟器下载及安装步骤详解
  6. 聚观早报 | 苹果和微软差了一个特斯拉;腾讯会议开始对个人收费
  7. 用python绘制树和森林_python实现画一颗树和一片森林
  8. corelcad 2019mac中文激活
  9. 首届“十大最具价值”机器人创业项目遴选榜单丨Xtecher联合中投协权威发布
  10. Flash ActionScript 3.0 动画教程 (高清PDF中文版下载)