JAVA获取机器的MAC地址
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地址相关推荐
- java 获取用户的MAC地址多种方法实例详解
java 获取用户的MAC地址多种方法实例详解 这篇文章主要介绍了JAVA实现获取用户的MAC地址的多种方法实例,需要的朋友可以参考下 java实现获取用户的MAC地址方法: 方法一:将本机地址与局域 ...
- Java获取客户端的mac地址
我是小韩,这一次和大家分享一下如何获取客户端的mac地址,在开发中,我们会遇到想进行主机安全的认证,简单一点的就是通过mac地址来认证,不是这台电脑的用户不允许登录,可以通过添加自己允许的mac进行认 ...
- java获取网卡的mac地址
为了项目的安全,有时候需要得到电脑的唯一码,比如:网卡的mac地址.和大家分享一下,下面是项目中用到的工具类: import java.io.BufferedReader; import java.i ...
- java 获取本机mac地址并转为字符串
2019独角兽企业重金招聘Python工程师标准>>> public String getMacAddress() throws Exception{ InetAd ...
- android 获取mac c语言,获取设备的mac地址和IP地址(android6.0以上专用)
/** * 获取设备HardwareAddress地址 * @return */ public static String getMachineHardwareAddress(){ Enumerati ...
- 第三方机构能获取我的MAC地址吗?
有关浏览器指纹识别,我们最常被问到的问题是,我们是否可以隐藏MAC地址?对注重隐私的业务来说,这意味着什么?换一种更直接的说法--网站或第三方机构是否可以获取我的MAC地址?就这一问题,我们展开了调查 ...
- Android中获取手机 IMEI Mac地址 IP地址
一.获取手机IMEI 手机在生产时,每部手机均有一个唯一的标识(ID),国际上采用国际移动设备身份码(IMEI, International Mobile Equipment Identity).IM ...
- Windows获取本机MAC地址方法(C语言)
Windows获取本机MAC地址方法(C语言) 用到的方法有两种:Netbios()和GetAdaptersInfo(); Netbios 获取步骤主要分为三步: 一.枚举本机所有LAN 二.重设每个 ...
- 获取远程网卡MAC地址
出自: http://blog.joycode.com/liuhuimiao/ 朋友mingal急问我有关获取远程网卡MAC地址的ASP.net实现.我一开始以为是获取本机MAC地址,说了几种方法给他 ...
最新文章
- YII2 models非常好用的控制输出数据【重写Fields】
- idea编译项目 失败_在IntelliJ IDEA下使用Lombok时无法编译项目
- LISP 圆孔标记_lisp使用说明
- 位运算与组合搜索(二)
- Spring-data-redis入门
- javabean自定义组件
- 【转】Android - 文件读写操作 总结
- 卷积神经网络流程图_基于卷积神经网络的叶片气孔自动计数方法
- 根据中心点、半径长度和角度画点
- 消费分期群体-在校大学生和职场白领
- [转]ISO镜像工具PowerISO和UltraISO制作ISO光盘镜像教程
- MySQL:设置字段默认为当前时间
- 一旦辞职,应该立即批准。留一段时间没有好处
- VS Code C语言开发环境配置附图版保姆教程
- 广告的术语和简称大全
- 矩阵分析与应用(12)
- firebird嵌入版数据使用
- 第一篇文章 关于道德经
- 【Nav2中文网】七、配置指南(三)行为树XML节点 之 控制插件--RoundRobin
- AD(活动目录)详解
热门文章
- 全年财报背后:小米的命Redmi定
- html audio标签无效,HTML5的audio标签设置currentTime无效解决方案
- 十种最神奇的快速减肥偏方
- JS 校验18位身份证号码正确性,出生年月日校验,校验码判断
- Genymotion模拟器下载及安装步骤详解
- 聚观早报 | 苹果和微软差了一个特斯拉;腾讯会议开始对个人收费
- 用python绘制树和森林_python实现画一颗树和一片森林
- corelcad 2019mac中文激活
- 首届“十大最具价值”机器人创业项目遴选榜单丨Xtecher联合中投协权威发布
- Flash ActionScript 3.0 动画教程 (高清PDF中文版下载)