J2SE实现windows下读取网卡的物理地址

文章作者 100test 发表时间 2008:02:01 14:52:51
来源 100Test.Com百考试题网


这个例子使用了J2SE5.0的ProcessBuilder类执行外部的程序,相对于 Runtime.exec ,它更方便,可以设置环境变量等。

package com.kuaff.jdk5package.

import java.io.IOException.
import java.io.InputStream.
import java.util.ArrayList.
import java.util.List.

public class ProcessBuilderShow
{
public static List getPhysicalAddress()
{
Process p = null.
//物理网卡列表
List address = new ArrayList().

try
{
//执行ipconfig /all命令
p = new ProcessBuilder("ipconfig", "/all").start().
}
catch (IOException e)
{
return address.
}
byte[] b = new byte[1024].
StringBuffer sb = new StringBuffer().
//读取进程输出值
InputStream in = p.getInputStream().
try
{
while (in.read(b)>0)
{
sb.append(new String(b)).
}
}
catch (IOException e1)
{
}
finally
{
try
{
in.close().
}
catch (IOException e2)
{
}
}
//以下分析输出值,得到物理网卡
String rtValue = sb.substring(0).
int i = rtValue.indexOf("Physical Address. . . . . . . . . :").
while(i>0)
{
rtValue = rtValue.substring(i "Physical Address. . . . . . . . . :".length()).
address.add(rtValue.substring(0,18)).
i = rtValue.indexOf("Physical Address. . . . . . . . . :").
}

return address.

}
public static void main(String[] args)
{
List address = ProcessBuilderShow.getPhysicalAddress().
for(String add:address)
{
System.out.printf("物理网卡地址:%s%n", add).
}
}
}

相关文章


JAVA进阶:如何在JBO erver上发布EJB
使用.bat文件在Windows下运行Java程序时怎样避免DOS窗口
JavaSE5中的枚举类型的使用方法
在FedoraLinux上安装JDK6_JavaSE6
J2SE实现windows下读取网卡的物理地址
J2EEdeploymentfiles(a lication-client.xml)-j2ee
J2EE项目中开发团队的组建-j2ee
《Java应用程序中的按值传递语义》的理解
J2ME开发中常见属性(Property)及其作用列表
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛