private Inet4Address getValidIPv4(List<Inet4Address> addresses) { Inet4Address valid = null; int maxWeight = -1; for (Inet4Address address : addresses) { int weight = 0; if (!address.getHostName().equals(address.getHostAddress())) weight += 1; if (address.isLinkLocalAddress()) weight += 4; if (address.isSiteLocalAddress()) weight += 8; if (weight > maxWeight) { maxWeight = weight; valid = address; } } return valid; }