/** * Converts an IP address and a prefix length into an IP prefix. * * @param address the IP address * @param prefixLength the prefix length * @return an IP prefix * @throws IllegalArgumentException if the prefix length value is invalid */ public static IpPrefix valueOf(IpAddress address, int prefixLength) { return new IpPrefix(address, prefixLength); }
/** * Converts an integer and a prefix length into an IPv4 prefix. * * @param address an integer representing the IPv4 address * @param prefixLength the prefix length * @return an IP prefix * @throws IllegalArgumentException if the prefix length value is invalid */ public static IpPrefix valueOf(int address, int prefixLength) { return new IpPrefix(IpAddress.valueOf(address), prefixLength); }
/** * Converts a byte array and a prefix length into an IP prefix. * * @param version the IP address version * @param address the IP address value stored in network byte order * @param prefixLength the prefix length * @return an IP prefix * @throws IllegalArgumentException if the prefix length value is invalid */ public static IpPrefix valueOf(IpAddress.Version version, byte[] address, int prefixLength) { return new IpPrefix(IpAddress.valueOf(version, address), prefixLength); }
/** * Converts a CIDR (slash) notation string (e.g., "10.1.0.0/16" or * "1111:2222::/64") into an IP prefix. * * @param address an IP prefix in string form (e.g. "10.1.0.0/16" or * "1111:2222::/64") * @return an IP prefix * @throws IllegalArgumentException if the arguments are invalid */ public static IpPrefix valueOf(String address) { final String[] parts = address.split("/"); if (parts.length != 2) { String msg = "Malformed IP prefix string: " + address + ". " + "Address must take form \"x.x.x.x/y\" or " + "\"xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/y\""; throw new IllegalArgumentException(msg); } IpAddress ipAddress = IpAddress.valueOf(parts[0]); int prefixLength = Integer.parseInt(parts[1]); return new IpPrefix(ipAddress, prefixLength); }