网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > JAVA > 其它技术 > J2SE实现windows读取网卡的物理地址  

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

2008-05-03  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

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

    package com.kuaff.jdk5package; 网管u家u.bitsCN.com

    import java.io.IOException;
    import java.io.InputStream;
    import java.util.ArrayList;
    import java.util.List; 网管bitscn_com

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

网管联盟bitsCN@com

        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
        {

网管网www.bitscn.com


            while (in.read(b)>0)
            {
                sb.append(new String(b));
            }
        }
        catch (IOException e1)
        {
        }
        finally
        {
            try
            {[Page]
                in.close();
            }
            catch (IOException e2)

网管bitscn_com


            {
            }
        }
        //以下分析输出值,得到物理网卡
        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. . . . . . . . . :\");
        } 网管网www.bitscn.com

        return address;

网管网www_bitscn_com

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

网管联盟bitsCN@com


TAGs   物理   地址   网卡   读取   实现       new   //   String>   import      
 上一篇:没有了   下一篇:没有了
J2SE实现windows读取网卡的物理地址 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: