订阅本栏目 RSS您所在的位置: 深山工作室 > 系统硬件 > 正文

JAVA得到网卡物理地址(Windows和Linux)

赛迪网 2008/4/3 23:14:53 深山行者 字体: 浏览 3892

在我们在写程序的过程中,有些时候需要知道一些电脑的硬件信息,比如我们写一些需要注册的程序的时候,就需要得到某个电脑特定的信息,一般来说,网卡的物理地址是不会重复的,我们正好可以用它来做为我们识别一台电脑的标志.那如何得到网卡的物理地址呢?我们可以借助于ProcessBuilder这个类,这个类是JDK1.5新加的,以前也可以用Runtime.exce这个类.在此我们将演示一下如何在windows和Linux环境下得到网卡的物理地址.

  /*

  * Test.java

  *

  * Created on 2007-9-27, 9:11:15

  *

  * To change this template, choose Tools   Templates

  * and open the template in the editor.

  */

  package test2;

  import java.io.BufferedReader;

  import java.io.IOException;

  import java.io.InputStreamReader;

  import java.util.Properties;

  import java.util.logging.Level;

  import java.util.logging.Logger;

  /**

  *

  * @author hadeslee

  */

  public class Test {

  public static String getMACAddress() {

  String address = "";

  String os = System.getProperty("os.name");

  System.out.println(os);

  if (os != null) {

  if (os.startsWith("Windows")) {

  try {

  ProcessBuilder pb = new ProcessBuilder("ipconfig", "/all");

  Process p = pb.start();

  BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));

  String line;

  while ((line = br.readLine()) != null) {

  if (line.indexOf("Physical Address") != -1) {

  int index = line.indexOf(":");

  address = line.substring(index + 1);

  break;

  }

  }

  br.close();

  return address.trim();

  } catch (IOException e) {

  }

  }else if(os.startsWith("Linux")){

  try {

  ProcessBuilder pb = new ProcessBuilder("ifconfig");

  Process p = pb.start();

  BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));

  String line;

  while((line=br.readLine())!=null){

  int index=line.indexOf("硬件地址");

  if(index!=-1){

  address=line.substring(index+4);

  break;

  }

  }

  br.close();

  return address.trim();

  } catch (IOException ex) {

  Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);

  }

  }

  }

  return address;

  }

  public static void main(String[] args) {

  System.out.println("" + Test.getMACAddress());

  }

  }

  我们可以看一下1.5新增的ProcessBuilder这个类,这个类比起以前用Runtime.exec来说,要强大一些,它可以指定一个环境 变量,并指定程序运行时的目录空间,并且也可以得到程序运行时的环境变量.因为ipconfig这个命令已经是system32里面的,所以不需要我们另外再设环境变量或者指定程序的运行时目录空间.我们直接用就可以了,然后得到进程的输出流,就可以分析出我们所需要的东西了.是不是挺简单的呢

  此程序可以得到windows下和Linux下的网卡地址,不过LINUX要是中文版的,英文版的也一样,只不过把字替换一下就可以了。这样我们的程序就有了两个平台的实现。

相关阅读
超级实用且不花哨的js代码大全( 6 )
专业地接服务的旅行社建站解决方案
重要声明:关于某些人冒充本网站。
asp获得系统Unix时间戳与将Unix时间戳转为正常日期
中国签证行业领导者--91出国签证网
CSS中的行为——expression的研究
河南中旅旅行社
深山留言板系统V3.6(游戏之穿越火线幽灵归来)
共有0条关于《JAVA得到网卡物理地址(Windows和Linux)》的评论
发表评论
正在加载评论......
返回顶部发表评论
呢 称:
表 情:
内 容:
评论内容:不能超过 1000 字,需审核,请自觉遵守互联网相关政策法规。
验证码: 验证码 
网友评论声明,请自觉遵守互联网相关政策法规。

您发布的评论即表示同意遵守以下条款:
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家、社会、集体和公民的合法权益;
二、不得发布国家法律、法规明令禁止的内容;互相尊重,对自己在本站的言论和行为负责;
三、本站对您所发布内容拥有处置权。

更多信息>>栏目类别选择
百度小程序开发
微信小程序开发
微信公众号开发
uni-app
asp函数库
ASP
DIV+CSS
HTML
python
更多>>同类信息
excel中End(xlUp)取活动单元表的第一列最后一个有值的行号
越狱ios老应用老游戏合集下载
各个苹果手表型号版本对比以及查看苹果手机Apple Watch型号
一次自动化批量处理服务器上几万张图片
fiddler抓包在内容的SyntaxView窗口里面是乱码
好用的免费桌面gif录制作屏幕软件
更多>>最新添加文章
python通过代码修改pip下载源让下载库飞起
python里面requests.post返回的res.text还有其它的吗
aliyun阿里云续费域名优惠口令(注册、续费都可以使用)
windows7环境下安装配置jdk
python对微信操作要用到这两个库wxpy与itchat
ASP中Utf-8与Gb2312编码转换乱码问题的解决方法页面编码声明
DW设置之后更好用 DreamweaverCS编辑GB2312与UTF-8文件在代码视图中点击鼠标错位问题的解决办法
解决国内 github.com 打不开的准确方法
更多>>随机抽取信息
ASP FSO读取XX文件夹下的所有文件列表
8种Python字符串拼接的方法,你知道几种
UL与LI 标签详解
26件网站推广网页优化必须的事情
利用javascript鼠标经过表格,行与列变色
仿百度知道宽度高度自适应的圆角边框