zoukankan      html  css  js  c++  java
  • 网络相关辅助类NetUtils

    package yqw.java.util;

    import java.net.NetworkInterface;
    import java.util.ArrayList;
    import java.util.Enumeration;
    import java.util.List;

    /**
     * 网络相关辅助类
     *
     */
    public class NetUtils {
        /**
         * 枚举所有网卡
         */
        public static List<NetworkInterface> EnumNetworkInterfaces() {
            try {
                List<NetworkInterface> netList = new ArrayList<NetworkInterface>();
                for (Enumeration<NetworkInterface> netEnum = NetworkInterface.getNetworkInterfaces(); netEnum
                        .hasMoreElements();) {
                    netList.add(netEnum.nextElement());
                }

                return netList;
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }

        /**
         * 获取本地网卡
         *
         * @return
         */
        public static NetworkInterface getLoopBackNetWorkInterface() {
            try {
                if (NetworkInterface.getNetworkInterfaces() == null) {
                    return null;
                }
                for (Enumeration<NetworkInterface> netEnum = NetworkInterface.getNetworkInterfaces(); netEnum
                        .hasMoreElements();) {
                    NetworkInterface net = netEnum.nextElement();
                    if (net.isLoopback()) {
                        return net;
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
            return null;
        }

        /**
         * 枚举所有物理网卡
         *
         */
        public static List<NetworkInterface> EnumPhysicalInterfaces() {
            try {
                List<NetworkInterface> netList = new ArrayList<NetworkInterface>();
                if (NetworkInterface.getNetworkInterfaces() == null) {
                    return null;
                }
                for (Enumeration<NetworkInterface> netEnum = NetworkInterface.getNetworkInterfaces(); netEnum
                        .hasMoreElements();) {
                    NetworkInterface net = netEnum.nextElement();
                    if (net.isPointToPoint() || net.isVirtual() || net.isLoopback() || !net.isUp()) {
                        continue;
                    }

                    netList.add(net);
                }

                return netList;
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }

        /**
         * 获取第一个物理网卡
         */
        public static NetworkInterface FirstPhysicalInterface() {
            List<NetworkInterface> netList = EnumPhysicalInterfaces();
            if (!CollectionUtils.IsAbsEmpty(netList)) {
                return netList.get(0);
            } else {
                return null;
            }
        }
    }

  • 相关阅读:
    import和include的区别
    $sformat用法
    如何快速理解DUT
    vim_basic
    UVM——寄存器模型相关的一些函数
    AMBA——总线仲裁
    Cache的写回策略(转)
    Cache直接映射、组相连映射以及全相连映射(转载)
    一起学IC验证:推荐资料合集,收藏专用(转载)
    VCS仿真流程
  • 原文地址:https://www.cnblogs.com/yang75n/p/8412988.html
Copyright © 2011-2022 走看看