public static NetworkInterface getMulticastNetworkInterface()

in commons-jcs3-core/src/main/java/org/apache/commons/jcs3/utils/net/HostNameUtil.java [194:226]


    public static NetworkInterface getMulticastNetworkInterface() throws SocketException
    {
        final Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
        while (networkInterfaces.hasMoreElements())
        {
            final NetworkInterface networkInterface = networkInterfaces.nextElement();
            if (!networkInterface.supportsMulticast())
            {
                log.trace("found network interface [{0}]: no multicast support", networkInterface::getDisplayName);
                continue;
            }
            final Enumeration<InetAddress> addressesFromNetworkInterface = networkInterface.getInetAddresses();
            while (addressesFromNetworkInterface.hasMoreElements())
            {
                final InetAddress inetAddress = addressesFromNetworkInterface.nextElement();
                log.trace("found network interface [{0}]: address: {1}, site local: {2}, any local {3}, link local {4}, loopback {5}, multicast {6}",
                        networkInterface::getDisplayName, inetAddress::getHostAddress, inetAddress::isSiteLocalAddress,
                        inetAddress::isAnyLocalAddress, inetAddress::isLinkLocalAddress, inetAddress::isLoopbackAddress,
                        inetAddress::isMulticastAddress);

                if (inetAddress.isSiteLocalAddress()
                        && !inetAddress.isAnyLocalAddress()
                        && !inetAddress.isLinkLocalAddress()
                        && !inetAddress.isLoopbackAddress()
                        && !inetAddress.isMulticastAddress())
                {
                    return networkInterface;
                }
            }
        }

        return null;
    }