7天掌握NIO和SOCKET,第五天,获取网络设备及其虚拟子接口,(虚拟子接口在linux上用java编译执行)

import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;

public class test_01 {
    public static void main(String[] args) throws SocketException {
        //获取网络接口的基本信息
        //method_01();

    private static void method_01() throws SocketException {
        Enumeration<NetworkInterface> networkInterfaceEnumeration = NetworkInterface.getNetworkInterfaces();
        while (networkInterfaceEnumeration.hasMoreElements()){
            NetworkInterface networkInterface = networkInterfaceEnumeration.nextElement();
            if (networkInterface.isUp() == true){
                System.out.println("getName获得网络设备名称 = "+networkInterface.getName());
                System.out.println("getDisplayName获得网络设备显示名称 = "+networkInterface.getDisplayName());
                System.out.println("getIndex获得网络接口的索引 = "+networkInterface.getIndex());
                System.out.println("isUp是否已经开启并运行 = "+networkInterface.isUp());
                System.out.println("isLoopBack是否为回调接口 = "+networkInterface.isLoopback());
                System.out.println("\n");
            }

        }
    }
        //获取MTU大小,网络传输以数据包为单位,用MTU来规定网络传输最大数据包的大小,单位字节,
        //MTU大,传输速度快,延迟高,MTU小,传输速度慢
        //不要随意更改MTU
        //method_02();

    private static void method_02() throws SocketException {
        Enumeration<NetworkInterface> networkInterfaceEnumeration = NetworkInterface.getNetworkInterfaces();
        while (networkInterfaceEnumeration.hasMoreElements()){
            NetworkInterface networkInterface = networkInterfaceEnumeration.nextElement();
            if(networkInterface.isUp()){
                System.out.println("网络设备名称:"+networkInterface.getName());
                System.out.println("网络设备显示名称:"+networkInterface.getDisplayName());
                //-1代表网络接口禁用
                System.out.println("最大传输单元:"+networkInterface.getMTU());
                System.out.println("\n");
            }
        }
    }
        //获取子接口,虽然windows上没有:
  method_03();
    private static void method_03() throws SocketException{
        try{
            Enumeration<NetworkInterface> networkInterface = NetworkInterface.getNetworkInterfaces();
            while(networkInterface.hasMoreElements()){
                NetworkInterface eachNetWork = networkInterface.nextElement();
                System.out.println("eachNetWork父接口的hashcode = "+eachNetWork.hashCode());
                System.out.println("eachNetWork的设备名字getName = "+eachNetWork.getName());
                System.out.println("eachNetWork的设备显示名称 = "+eachNetWork.getDisplayName());
                System.out.println("eachNetWork是否为虚拟接口 = "+eachNetWork.isVirtual());
                System.out.println("eachNetWork的父接口 = "+eachNetWork.getParent());
                System.out.println("eachNetWork的的子接口信息:");
                Enumeration<NetworkInterface>subNetworkInterfaces = eachNetWork.getSubInterfaces();
                while(subNetworkInterfaces.hasMoreElements()){
                    NetworkInterface subNetworkInterface = subNetworkInterfaces.nextElement();
                    System.out.println("子接口网络设备名称:"+subNetworkInterface.getName());
                    System.out.println("子接口网络设备显示名称:"+subNetworkInterface.getDisplayName());
                    System.out.println("子接口是否为虚拟接口:"+subNetworkInterface.isVirtual());
                    System.out.println("父接口的hashCode:"+subNetworkInterface.getParent().hashCode());
                    System.out.println("");
                    System.out.println("");
                }
                System.out.println("");
            }
        }catch(Exception e){
            e.printStackTrace();
        }
    }
    }

}

在linux系统:阿里云centos7.x上:代码:

编译

执行,可以看到,这台centos没有虚拟的子接口

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值