美文网首页
查看网卡信息

查看网卡信息

作者: jian321 | 来源:发表于2017-09-29 17:43 被阅读0次

    一、实验内容:

    一、必做:
    (1)、获取本机的网卡信息,功能要求通过按钮显示详细信息。
    二、选做:
    (1)、修改本机的ip地址,子网掩码,默认网关以及DNS
    (2)、添加功能按键,实现禁止wifi和打开wifi功能。

    二、实验目的:

    1、通过具体操作的作业任务,加强对相关理论知识的理解,同时培养动手实践能力,以及查找资料独立解决问题的能力。
    2、培养学习兴趣。

    三、实验过程:

    一、实验准备:
    1、Eclipse编译工具
    2、所用语言:java


    二、实验预期效果:


    三、实验设计:
    1、构建图形界面
    2、模块划分:(1):网卡基本信息 (2):IPv4设置 (3):功能开关
    3、具体实现:java的GUI图形用户界面知识的运用,通过调用AWT和Swing工具包,以及运用API的相关类。

    四、模块实现

    一、网卡基本信息显示:

    (1)创建Frame父容器,往容器里添加组件和其他二级容器,例如:JPanel容器,添加JButton组件,关联监听程序(动作事件)。JTextField文本组件又来读取文本框内的内容。
    (2)主要通过调用NetworkInterface类,得到本机的相关接口信息:NetworkInterface.getNetworkInterfaces()获得本机所有接口,通过迭代器获得每一个接口的对象,Object.getHardwareAddress()获得接口的物理地址,Object.getName()获得接口的名称等等。
    主要代码如下:

    获得本机所有接口

    Enumeration<NetworkInterface> e = NetworkInterface.getNetworkInterfaces();
            for(;e.hasMoreElements();){
                NetworkInterface ip= e.nextElement();
    ......
    }
    

    添加动作监听事件

    bt.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent e){
                    String item = (String)comboBox.getSelectedItem();
                        try {
                            new Print().print(item);
                        } catch (Throwable e1) {
                            e1.printStackTrace();
                        }   
                } 
            });
    

    问题记录:
    1、布局问题:出现容器叠加情况,结果只显示最后一个添加的容器。
    2、如何使容器摆放在你想摆放的位置。
    目前解决方案:
    1、将父容器的布局属性Layour设置为null,再将容器的setBounds属性设置要摆放的位置参数(container.setBounds(para))。更多的设置可以参考Java在线帮助文档。

    二、IPv4设置:

    (1)主要是通过java创建进程调用系统的cmd,执行相关命令,来实现对本机的IP修改。具体命令netsh interface ip set address static addr=xx mask=xxx gateway=xxx 静态修改本机的ip地址、子网掩码、默认网关 netsh interface dns address static xxx 修改本机的DNS参数。主要代码如下:

    设置IPv4

    process = Runtime.getRuntime().exec(setadr);
    bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream())); 
    String line =bufferedReader.readLine() ;
    

    问题记录:
    1、权限问题:运用这种方法需要管理员的权限才能实现
    解决方案:
    以管理员的身份运行就ok了

    三、功能开关:

    未实现:只记录下想法:同设置本机IPv4一样,通过命令行来实现。

    五、实验总结

    1、加深了对java语言的深入学习,学习了相关的API知识,以及一些cmd下的命令知识。
    2、对网络中IP的作用的认识有了更客观的理解,以及初涉了网络的通信的实现机理。以及对一些网络专用术语子网掩码,网关,MAC有了深一步理解。

    相关文章

      网友评论

          本文标题:查看网卡信息

          本文链接:https://www.haomeiwen.com/subject/ptiiextx.html