首页 > 开发 > 综合 > 正文

J2SE新特性 Windows下读取网卡物理地址

2024-07-21 02:14:30
字体:
来源:转载
供稿:网友

个例子使用了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<string> getphysicaladdress()    {        process p = null;        //物理网卡列表        list<string> address = new arraylist<string>();        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<string> address = processbuildershow.getphysicaladdress();        for(string add:address)        {            system.out.printf("物理网卡地址:%s%n", add);        }    }}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表