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;
            }
        }
    }

  • 相关阅读:
    hbuilder外置服务器设置(局域网移动端调试)
    【转载】解决微信OAuth2.0网页授权回调域名只能设置一个的问题
    【转载】如何使用PHP构建一个高性能的弹幕后端服务
    【转载】PHP学习资源整理
    【php基础】php运算符 php取整函数
    Browser 对象(一、history)
    Opencv 图像平滑基础二维离散卷积C++ API
    Opencv 图像平滑基础二维离散卷积 python API
    道格拉斯轨迹抽稀算法Android 百度地图SDK
    Opencv 几何变换
  • 原文地址:https://www.cnblogs.com/yang75n/p/8412988.html
Copyright © 2011-2022 走看看