Chinaunix首页 | 论坛 | 博客
  • 博客访问: 64020
  • 博文数量: 18
  • 博客积分: 1430
  • 博客等级: 上尉
  • 技术积分: 172
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-06 00:29
个人简介

随心 随性 专注一心

文章分类

全部博文(18)

文章存档

2015年(2)

2014年(9)

2013年(3)

2011年(1)

2010年(3)

我的朋友

分类: Java

2013-07-16 16:27:07

MAC地址一般的PC用户是不会修改的(当然不排除一些高手了),想要直接获取也很简单,开始->运行->cmd->回车->输入ipconfig /all->回车。输出窗口就会显示出本机的MAC地址

但是为什么会有两张截图呢,因为有中英文显示的问题,用代码获取的话通常不能确定用户端是用什么编码显示。
下面是具体实现的代码


点击(此处)折叠或打开

  1. public static void main(String[] args)
  2.     {
  3.         // 网卡MAC地址
  4.         String physicalAddress=null;
  5.         try
  6.         {
  7.             Process process=Runtime.getRuntime().exec("cmd /c ipconfig /all");
  8.             BufferedReader bufferedReader=new BufferedReader(
  9.                 new InputStreamReader(process.getInputStream()));
  10.             String line=null;
  11.             while((line=bufferedReader.readLine())!=null)
  12.             {
  13.                 if(line.indexOf("Physical Address. . . . . . . . . :")!=-1)
  14.                 {
  15.                     if(line.indexOf(":")!=-1)
  16.                     {
  17.                         physicalAddress=line.substring(line.indexOf(":")+2);
  18.                         break;
  19.                     }
  20.                 }
  21.             }
  22.         }
  23.         catch(IOException e)
  24.         {
  25.             e.printStackTrace();
  26.         }
  27.         System.out.println("MAC="+physicalAddress);
  28.     }
该方法获取到用户本地的MAC地址,但是由于不清楚用户输出窗口显示编码导致可能获取不到的情况,该如何解决呢?方法就是获取时先设置好输出窗口的显示编码

点击(此处)折叠或打开

  1. Process process=Runtime.getRuntime().exec("cmd /c CHCP 437 | ipconfig /all");
因为程序中一般禁止直接使用中文做逻辑处理,所以if判断中使用的是"Physical Address. . . . . . . . . :" ,当设置编码后就可以获取想要的信息了。
CHCP功能:显示或设置活动代码页(即当前显示页)编号
代码页 描述 
1258 越南语 
1257 波罗的语 
1256 阿拉伯语 
1255 希伯来语 
1254 土耳其语 
1253 希腊语 
1252 拉丁 1 字符 (ANSI) 
1251 西里尔语 
1250 中欧语言 
950 繁体中文 
949 朝鲜语 
936 简体中文 
932 日语 
874 泰国语 
850 多语种 (MS-DOS Latin1) 
437 MS-DOS 美国英语

当然还有其他的DOS命令也可以如此执行,例如执行ping消息等。

阅读(599) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~