• 网络相关辅助类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;
            }
        }
    }

  • 相关阅读:
    工作10年写不好一封邮件?
    邮件狂人告诉你:如何打造最强邮件处理流
    免费瘫软入院,付费发飙成壮汉,YoMail 想干嘛?
    我们要招5-10人,全要技术!
    如何有效的报告bug?
    黑科技 | 用实力打造邮件沟通新模式
    李叫兽去了百度,我们来聊聊营销
    你好,我想送你一本书
    上了这套密码锁,你就无敌了
    YoMail 邮箱客户端的社会化之路,起于邮箱,不止于邮件
  • 原文地址:https://www.cnblogs.com/yang75n/p/8412988.html
Copyright © 2020-2023  润新知