public static String getNetworkMaskOfIpRange(String startIp, int prefixLen) { try { IPv6Address start = IPv6Address.fromString(startIp); IPv6Network network = IPv6Network.fromAddressAndMask(start, IPv6NetworkMask.fromPrefixLength(prefixLen)); return network.getNetmask().toString(); } catch (Exception e) { return ""; } }
public static String getGatewayOfNetworkCidr(String cidr) { IPv6Network network = IPv6Network.fromString(cidr); if (network.getNetmask().asPrefixLength() <= 127) { return network.getFirst().add(1).toString(); } else { return network.getFirst().toString(); } }
public static String getNetworkCidrOfIpRange(String startIp, int prefixLen) { try { IPv6Address start = IPv6Address.fromString(startIp); IPv6Network network = IPv6Network.fromAddressAndMask(start, IPv6NetworkMask.fromPrefixLength(prefixLen)); return network.toString(); } catch (Exception e) { return ""; } }
public static boolean isValidUnicastNetworkCidr(String networkCidr) { try { IPv6Network network = IPv6Network.fromString(networkCidr); if ((network.getNetmask().asPrefixLength() > IPv6Constants.IPV6_PREFIX_LEN_MAX) || (network.getNetmask().asPrefixLength() < IPv6Constants.IPV6_PREFIX_LEN_MIN)) { return false; } return !(network.getFirst().isSiteLocal() || network.getFirst().isLinkLocal() || network.getFirst().isMulticast()); } catch (Exception e) { return false; } }
public static int getIp6CidrSize(final String ip6Cidr) { IPv6Network network = null; try { network = IPv6Network.fromString(ip6Cidr); } catch (final IllegalArgumentException ex) { return 0; } return network.getNetmask().asPrefixLength(); }
public static boolean isIpv6InCidrRange(String ip, String networkCidr) { IPv6Network network = IPv6Network.fromString(networkCidr); IPv6Address address = IPv6Address.fromString(ip); return network.contains(address); }
public static String getEndIpOfNetworkCidr(String cidr) { IPv6Network network = IPv6Network.fromString(cidr); return network.getLast().toString(); }
public static boolean isIpv6RangeOverlap(String startIp1, String endIp1, String startIp2, String endIp2) { try { IPv6Address s1 = IPv6Address.fromString(startIp1); IPv6Address e1 = IPv6Address.fromString(endIp1); IPv6Address s2 = IPv6Address.fromString(startIp2); IPv6Address e2 = IPv6Address.fromString(endIp2); IPv6AddressRange range1 = IPv6AddressRange.fromFirstAndLast(s1, e1); IPv6AddressRange range2 = IPv6AddressRange.fromFirstAndLast(s2, e2); return range1.overlaps(range2); } catch (Exception e) { return true; } }
public static String getIpv6AddressCanonicalString(String ip) { IPv6Address ip6 = IPv6Address.fromString(ip); return ip6.toString(); }
public static boolean isIpv6InRange(String ip, String startIp, String endIp) { IPv6Address start = IPv6Address.fromString(startIp); IPv6Address end = IPv6Address.fromString(endIp); IPv6Address address = IPv6Address.fromString(ip); IPv6AddressRange range = IPv6AddressRange.fromFirstAndLast(start, end); return range.contains(address); }
public static long getIpv6RangeSize(String startIp, String endIp) { IPv6Address start = IPv6Address.fromString(startIp); IPv6Address end = IPv6Address.fromString(endIp); IPv6AddressRange range = IPv6AddressRange.fromFirstAndLast(start, end); if (range.size().compareTo(IPv6Constants.IntegerMax) >= 0) { return Integer.MAX_VALUE; } else { return range.size().longValue(); } }
public static boolean isIp6InNetwork(final String ip6, final String ip6Cidr) { try { return isIp6InNetwork(IPv6Address.fromString(ip6), IPv6Network.fromString(ip6Cidr)); } catch (final IllegalArgumentException ex) { return false; } }
public static boolean isIpv6UnicastAddress(String ip) { try { IPv6Address address = IPv6Address.fromString(ip); if (address.isMulticast() || address.isLinkLocal() || address.isSiteLocal()) { return false; } else { return true; } } catch (Exception e){ return false; } }
public static BigInteger ipv6AddressToBigInteger(String ip) { return IPv6Address.fromString(ip).toBigInteger(); }
public static String getFormalCidrOfNetworkCidr(String cidr) { IPv6Network network = IPv6Network.fromString(cidr); return network.toString(); }
public static boolean isIpv6Address(String ip) { try { IPv6Address.fromString(ip); return true; } catch (Exception e){ return false; } }
public static boolean isValidIp6Cidr(final String ip6Cidr) { try { IPv6Network.fromString(ip6Cidr); } catch (final IllegalArgumentException ex) { return false; } return true; }
public static String getStartIpOfNetworkCidr(String cidr) { IPv6Network network = IPv6Network.fromString(cidr); if (network.getNetmask().asPrefixLength() < 127) { return network.getFirst().add(2).toString(); } else { return network.getFirst().toString(); } }
public static int getPrefixLenOfNetworkCidr(String cidr) { IPv6Network network = IPv6Network.fromString(cidr); return network.getNetmask().asPrefixLength(); }
public static String getFormalNetmaskOfNetworkCidr(String cidr) { Integer prefix = IPv6Network.fromString(cidr).getNetmask().asPrefixLength(); return getFormalNetmaskOfNetworkCidr(prefix); }