private static NetworkInterface findNetworkInterface()

in kernel/src/main/java/org/apache/shardingsphere/elasticjob/kernel/infra/env/IpUtils.java [73:99]


    private static NetworkInterface findNetworkInterface() {
        Enumeration<NetworkInterface> interfaces;
        try {
            interfaces = NetworkInterface.getNetworkInterfaces();
        } catch (final SocketException ex) {
            throw new HostException(ex);
        }
        List<NetworkInterface> validNetworkInterfaces = new LinkedList<>();
        while (interfaces.hasMoreElements()) {
            NetworkInterface networkInterface = interfaces.nextElement();
            if (ignoreNetworkInterface(networkInterface)) {
                continue;
            }
            validNetworkInterfaces.add(networkInterface);
        }
        NetworkInterface result = null;
        for (NetworkInterface each : validNetworkInterfaces) {
            if (isPreferredNetworkInterface(each)) {
                result = each;
                break;
            }
        }
        if (null == result) {
            result = getFirstNetworkInterface(validNetworkInterfaces);
        }
        return result;
    }