首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | HR | 镜像
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
搜索中心 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>网络管理>环境配置>正文

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

http://www.oklinux.cn  2008-02-25  赛迪网 sixth  会员收藏  游客收藏  【 】 
您查看的文章来源于http://www.oklinux.cn

在我们在写程序的过程中,有些时候需要知道一些电脑的硬件信息,比如我们写一些需要注册的程序的时候,就需要得到某个电脑特定的信息,一般来说,网卡的物理地址是不会重复的,我们正好可以用它来做为我们识别一台电脑的标志.那如何得到网卡的物理地址呢?我们可以借助于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要是中文版的,英文版的也一样,只不过把字替换一下就可以了。这样我们的程序就有了两个平台的实现。


上一篇:Radeon驱动获得X-Video支持   下一篇:专家反思中国Linux市场:曾为刀俎却变成鱼肉

收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·利用PS3和Linux搭建一个并行程序开发平台
·编程语言PHP在Web开发领域的优势在哪?
·Weblogic在Linux和Unix下的后台启动脚本
·静态库和动态库 Linux系统程序设计之路
·在Ubuntu 7.10 Linux下搭建J2EE开发环境
·Java应用:Fedora Linux 8系统下配置JDK
·关于Linux系统下软件开发工具的选择
·Linux系统下的三种Java环境配置方法
·Ubuntu下面的C语言代码检查工具 Splint
·Linux configure关于交叉编译的参数设置
·Shell编程:Linux系统环境程序设计之路
·在Linux下安装Perl及Perl模块
·开源空间:关于Linux下时间编程的问题
·类Linux中各种各样的编程语言
·开源空间:交叉编译Linux内核(2.6.22.6)
·Linux系统下 MONO执行C#程序的方法
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·让WordPress在Ubuntu系统运行起来
·MySQL能否会继续让LAMP架构发扬光大?
·Ubuntu Linux 8.04 下安装GCC编译器过
·Ubuntu Linux 8.04系统JAVA环境配置方
·Linux环境变量配置和保存地点
·IIS上PHP5.23安装配置详细介绍
·Fedora 8.0下安装Perl过程
·Linux系统下手动安装pdo_mysql 成功
·在Linux下防止某个程序被运行两次的方
·Linux下automake软件编译与发布快速入
·Linux系统下精确到微秒级的时间操作函
·Linux系统下安装Perl及其模块的方法
  阅读排行
·Ubuntu Linux 8.04 下安装GCC编译器过
·Linux configure关于交叉编译的参数设
·Linux系统下手动安装pdo_mysql 成功
·如何在Ubuntu 7.10上实现C/C 开发环境
·关于Linux系统下软件开发工具的选择
·Linux环境变量配置和保存地点
·Linux系统下源码阅读工具ctags vim
·Weblogic在Linux和Unix下的后台启动脚
·Linux系统下 设置OpenGL的编程环境
·/etc/profile环境变量配置解析
·Linux Ftp服务器搭建支持Anonymous读写
·在Windows系统下配置Linux C 开发环境
·Linux系统下 MONO执行C#程序的方法
·Ubuntu配置Java Eclipse MyEclipse环境
·Ubuntu配置Java+Eclipse+MyEclipse环境
网摘收藏: