使用java获取本机mac
不开心,辛苦写的第一篇文章不小心删除了还恢复不了
想用java 获得本机地址,搜了下,觉得这个看起来不错,简洁
import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.net.UnknownHostException;public class app{public static void main(String[] args){InetAddress ip;try {ip = InetAddress.getLocalHost();System.out.println("Current IP address : " + ip.getHostAddress());NetworkInterface network = NetworkInterface.getByInetAddress(ip);byte[] mac = network.getHardwareAddress();System.out.print("Current MAC address : ");StringBuilder sb = new StringBuilder();for (int i = 0; i < mac.length; i++) {sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : "")); }System.out.println(sb.toString());} catch (UnknownHostException e) {e.printStackTrace();} catch (SocketException e){e.printStackTrace();}}}
好多都是这个版本,问题在于,一运行,报错了!!很无语,排查了很久也找不到原因,看getHardwareAddress API也没发现错误,很无奈。
mei@mei-X-Series:~/mei/test$ java Ipconfig mei-X-Series/127.0.1.1 Exception in thread "main" java.lang.NullPointerExceptionat Ipconfig.getLocalMac(Ipconfig.java:24)at Ipconfig.main(Ipconfig.java:19)
终于在http://rupertanderson.com/blog/soapui-google-analytics-null-pointer-exception-on-ubuntu/ 中找到难友,并获知了原因,that NetworkInterface.getByInetAddress cannot match the Machine Name to any of the Network Interface values.就是不匹配了。
超出了自己的能力范围,看来智能用复杂的代码了,以下代码测试通过
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;public class getmac{ public static String getLinuxMACAddress() {String mac = null;BufferedReader bufferedReader = null;Process process = null;try { process = Runtime.getRuntime().exec("ifconfig enp4s0");bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));String line = null;int index = -1;while ((line = bufferedReader.readLine()) != null) {index = line.toLowerCase().indexOf("硬件地址");if (index != -1) {mac = line.substring(index + 4).trim();break;}}} catch (IOException e) {e.printStackTrace();} finally {try {if (bufferedReader != null) {bufferedReader.close();}} catch (IOException e1) {e1.printStackTrace();}bufferedReader = null;process = null;}return mac;} public static void main(String[] argc) {String mac = getLinuxMACAddress();System.out.println("本地是Linux系统, MAC地址是:" + mac);} }
运行结果如下:
本地是Linux系统, MAC地址是:54:ab:3a:05:34:e6
通过最近几周的经历发现,网上的东西都是仅供参考,因为环境的不同、版本的不同会造成很大的差异,而且很多人都只是转载,从未验证,告诫自己无论任何东西,一定要切身验证,
也要养成写博客的习惯,把自己的过程记录记载下来,供别人和自己以后参考。
转载于:https://www.cnblogs.com/KnowledgeShare/p/6184383.html
使用java获取本机mac相关推荐
- java获取本机mac物理地址
package com.simonjia.util.other; import java.net.InetAddress;import java.net.InterfaceAddress;import ...
- java 获取本机mac地址并转为字符串
2019独角兽企业重金招聘Python工程师标准>>> public String getMacAddress() throws Exception{ InetAd ...
- Java获取本机的ip地址和Mac地址
Java获取本机的ip地址 //得到IP,InetAddress ia = InetAddress.getLocalHost();String ip=ia.toString().split(" ...
- java 获取用户的MAC地址多种方法实例详解
java 获取用户的MAC地址多种方法实例详解 这篇文章主要介绍了JAVA实现获取用户的MAC地址的多种方法实例,需要的朋友可以参考下 java实现获取用户的MAC地址方法: 方法一:将本机地址与局域 ...
- java 获取已有字体,java获取本机全部可用字体
java获取本机所有可用字体 //just for fun,那个28个字母的函数满满都是恶心 import java.awt.GraphicsEnvironment ; class Tester { ...
- android 获取网卡mac_Android获取本机Mac地址及IP地址方法
1.Android 获取本机Mac 地址方法: 需要在AndroidManifest.xml文件中添加权限: public String getLocalMacAddress() { WifiMan ...
- 用java获取本机IP地址
在网上找了几个用java获取本机IP地址的代码,发现都少都有些不完美,自己整理了一下.突然之间很想把自己的IP地址给获取了,虽然用系统自带命令可以得到,但自己想写一个程序获取一下,到网上搜索了一下ja ...
- ruby获取本机mac加密生成lisence文件,客户端根据lisence许可调用主程序
需求: 提取客户本机Mac地址,生成Md5值.(客户使用,提供给厂商) 对该Md5值进行加密,生成lisence.txt文件.(厂商生成) 获取当前目录的lisence文件,解密,如果解密后与加密之前 ...
- Unity——获取本机MAC地址
Unity中获取本机Mac地址,常用于类似绑定设备的加密情况中,限制程序只可以在固定的设备上使用.首先我们需要在脚本中引用System.Net.NetworkInformation程序集,然后使用Ne ...
最新文章
- linux 内核 config_localversion_auto,关于CONFIG_LOCALVERSION_AUTO设置去掉内核版本号SVN后缀...
- HTML的标签描述7
- Linux 命令 查看监听端口
- sql2005主从数据库同步配置
- spring中加入log4j
- 【CentOS】安装部署jenkins从git获取代码[转]
- java cms bootstrap_thinkcms: Java CMS系统,完善的后台功能,大气的前台页面.
使用springMVC,hibernate,bootstrap,amazeui....
- 用 Python 识别图片中的文字
- c语言通过定义变量实现对,C语言中定义变量“#X”,X##, ##X 和“##X##”用意
- 大厂Java八股文面试真题汇总,2022秋招必备,面试不慌
- SQL server 认证考试
- 2022年最新配置:Eslint+Prettier+Volar
- 音视频基本概念和FFmpeg的简单入门(新手友好+FFmpeg资料分享)
- Tikz 画图技巧二
- html切换导航不同页面,HTML按钮:导航到其他页面 - 不同的方法
- 38译码器真值表讲解_74138译码器真值表及引脚图功能
- [教程]使用Lite MP4 Tool专业制作MP4(AVC)视频格式 - 指导教程
- 考研复试(控制工程专硕)及大学本科(物联网工程)知识点回顾(一)——C语言/单片机
- PyTorch 1.0 中文官方教程:空间变换器网络教程
- C语言入门——编程题