java获取本机MAC地址

cjbedu2012 2017-06-14 05:11:47
在网上找了一结获取mac的方法,但是拔掉网线后再来获取MAC就是空值。

问题:不上网时或不接网线时如何获取本机MAC地址
...全文
349 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
cjbedu2012 2017-06-15
  • 打赏
  • 举报
回复
引用 9 楼 zc881124 的回复:
[quote=引用 8 楼 cjbedu2012 的回复:]
[quote=引用 7 楼 zc881124 的回复:]
[quote=引用 6 楼 cjbedu2012 的回复:]
[quote=引用 5 楼 zc881124 的回复:]
[quote=引用 4 楼 cjbedu2012 的回复:]
[quote=引用 3 楼 zc881124 的回复:]
使用ipconfig/all 是能获取到的
后面自己去堵控制台的输出结果 解析


�����ַ. . . . . . . . . . . . . : E1-25-F1-1D-22-E1

解析出来的红色部分是这种符号, 这怎么转成中文呢? 请贴个代码,感谢!

[/quote]

首先你在dos下输入时 是否正常,你这是编码问题,你转成gbk试试。[/quote]

1、在DOS下输入命令,返回的结果都是正常的;

2、转码语句:line = new String(line.trim().getBytes("ISO-8859-1"),"GBK");utf-8、gb2312都试过;
出现乱码:;
[/quote]

你怎么去读取的,建议你使用

Process ps = Runtime.getRuntime().exec("cmd /c ipconfig /all");
BufferedReader br = new BufferedReader(new InputStreamReader(ps
.getInputStream()));
while (null != (line = br.readLine())) {

去读 我这边试了 是可以的。[/quote]



我用的是win7[/quote]

line直接打印出来看,先不用转。[/quote]



直接打印也是乱码
110成成 2017-06-15
  • 打赏
  • 举报
回复
引用 8 楼 cjbedu2012 的回复:
[quote=引用 7 楼 zc881124 的回复:] [quote=引用 6 楼 cjbedu2012 的回复:] [quote=引用 5 楼 zc881124 的回复:] [quote=引用 4 楼 cjbedu2012 的回复:] [quote=引用 3 楼 zc881124 的回复:] 使用ipconfig/all 是能获取到的 后面自己去堵控制台的输出结果 解析
�����ַ. . . . . . . . . . . . . : E1-25-F1-1D-22-E1 解析出来的红色部分是这种符号, 这怎么转成中文呢? 请贴个代码,感谢! [/quote] 首先你在dos下输入时 是否正常,你这是编码问题,你转成gbk试试。[/quote] 1、在DOS下输入命令,返回的结果都是正常的; 2、转码语句:line = new String(line.trim().getBytes("ISO-8859-1"),"GBK");utf-8、gb2312都试过; 出现乱码:;[/quote] 你怎么去读取的,建议你使用 Process ps = Runtime.getRuntime().exec("cmd /c ipconfig /all"); BufferedReader br = new BufferedReader(new InputStreamReader(ps .getInputStream())); while (null != (line = br.readLine())) { 去读 我这边试了 是可以的。[/quote] 我用的是win7[/quote] line直接打印出来看,先不用转。
cjbedu2012 2017-06-15
  • 打赏
  • 举报
回复
引用 7 楼 zc881124 的回复:
[quote=引用 6 楼 cjbedu2012 的回复:]
[quote=引用 5 楼 zc881124 的回复:]
[quote=引用 4 楼 cjbedu2012 的回复:]
[quote=引用 3 楼 zc881124 的回复:]
使用ipconfig/all 是能获取到的
后面自己去堵控制台的输出结果 解析


�����ַ. . . . . . . . . . . . . : E1-25-F1-1D-22-E1

解析出来的红色部分是这种符号, 这怎么转成中文呢? 请贴个代码,感谢!

[/quote]

首先你在dos下输入时 是否正常,你这是编码问题,你转成gbk试试。[/quote]

1、在DOS下输入命令,返回的结果都是正常的;

2、转码语句:line = new String(line.trim().getBytes("ISO-8859-1"),"GBK");utf-8、gb2312都试过;
出现乱码:;
[/quote]

你怎么去读取的,建议你使用

Process ps = Runtime.getRuntime().exec("cmd /c ipconfig /all");
BufferedReader br = new BufferedReader(new InputStreamReader(ps
.getInputStream()));
while (null != (line = br.readLine())) {

去读 我这边试了 是可以的。[/quote]



我用的是win7
110成成 2017-06-15
  • 打赏
  • 举报
回复
引用 6 楼 cjbedu2012 的回复:
[quote=引用 5 楼 zc881124 的回复:] [quote=引用 4 楼 cjbedu2012 的回复:] [quote=引用 3 楼 zc881124 的回复:] 使用ipconfig/all 是能获取到的 后面自己去堵控制台的输出结果 解析
�����ַ. . . . . . . . . . . . . : E1-25-F1-1D-22-E1 解析出来的红色部分是这种符号, 这怎么转成中文呢? 请贴个代码,感谢! [/quote] 首先你在dos下输入时 是否正常,你这是编码问题,你转成gbk试试。[/quote] 1、在DOS下输入命令,返回的结果都是正常的; 2、转码语句:line = new String(line.trim().getBytes("ISO-8859-1"),"GBK");utf-8、gb2312都试过; 出现乱码:;[/quote] 你怎么去读取的,建议你使用 Process ps = Runtime.getRuntime().exec("cmd /c ipconfig /all"); BufferedReader br = new BufferedReader(new InputStreamReader(ps .getInputStream())); while (null != (line = br.readLine())) { 去读 我这边试了 是可以的。
cjbedu2012 2017-06-15
  • 打赏
  • 举报
回复
引用 5 楼 zc881124 的回复:
[quote=引用 4 楼 cjbedu2012 的回复:]
[quote=引用 3 楼 zc881124 的回复:]
使用ipconfig/all 是能获取到的
后面自己去堵控制台的输出结果 解析


�����ַ. . . . . . . . . . . . . : E1-25-F1-1D-22-E1

解析出来的红色部分是这种符号, 这怎么转成中文呢? 请贴个代码,感谢!

[/quote]

首先你在dos下输入时 是否正常,你这是编码问题,你转成gbk试试。[/quote]

1、在DOS下输入命令,返回的结果都是正常的;

2、转码语句:line = new String(line.trim().getBytes("ISO-8859-1"),"GBK");utf-8、gb2312都试过;
出现乱码:;
110成成 2017-06-15
  • 打赏
  • 举报
回复
引用 4 楼 cjbedu2012 的回复:
[quote=引用 3 楼 zc881124 的回复:] 使用ipconfig/all 是能获取到的 后面自己去堵控制台的输出结果 解析
�����ַ. . . . . . . . . . . . . : E1-25-F1-1D-22-E1 解析出来的红色部分是这种符号, 这怎么转成中文呢? 请贴个代码,感谢! [/quote] 首先你在dos下输入时 是否正常,你这是编码问题,你转成gbk试试。
cjbedu2012 2017-06-15
  • 打赏
  • 举报
回复
引用 3 楼 zc881124 的回复:
使用ipconfig/all 是能获取到的 后面自己去堵控制台的输出结果 解析
�����ַ. . . . . . . . . . . . . : E1-25-F1-1D-22-E1 解析出来的红色部分是这种符号, 这怎么转成中文呢? 请贴个代码,感谢!
110成成 2017-06-15
  • 打赏
  • 举报
回复
使用ipconfig/all 是能获取到的
后面自己去堵控制台的输出结果 解析
cjbedu2012 2017-06-15
  • 打赏
  • 举报
回复
引用 1 楼 tianfang 的回复:
windows下 使用ipconfig ,linux 下ifconfig,解析结果 http://www.aichengxu.com/java/7159261.htm http://www.iteye.com/topic/255210
在win7下会出现乱码,也就取不到值了;如:�����ַ. . . . . . . . . . . . . : E1-25-F1-1D-22-E1 请问这个如何解决
tianfang 2017-06-15
  • 打赏
  • 举报
回复
windows下 使用ipconfig ,linux 下ifconfig,解析结果 http://www.aichengxu.com/java/7159261.htm http://www.iteye.com/topic/255210
cjbedu2012 2017-06-15
  • 打赏
  • 举报
回复
引用 11 楼 zc881124 的回复:
在inputstreamreader中编码转下。 BufferedReader br = new BufferedReader(new InputStreamReader(ps .getInputStream(), "GBK")); 试下
这个方法解决了,谢谢!
cjbedu2012 2017-06-15
  • 打赏
  • 举报
回复
引用 12 楼 tianfang 的回复:
cmd窗口中的汉字是GBK 你的项目编码是什么?如果只是windows环境用,就用GBK;用其它编码就存在编码转换的问题
项目编码是:utf-8 在windows环境下运行,但是将整个项目改为gbk会有问题,若能将获取的值转码就好了
tianfang 2017-06-15
  • 打赏
  • 举报
回复
cmd窗口中的汉字是GBK 你的项目编码是什么?如果只是windows环境用,就用GBK;用其它编码就存在编码转换的问题
110成成 2017-06-15
  • 打赏
  • 举报
回复
在inputstreamreader中编码转下。 BufferedReader br = new BufferedReader(new InputStreamReader(ps .getInputStream(), "GBK")); 试下

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧