private static Collection<String> parseIPV6parts(String[] parts, String address) { final LinkedList<String> ipString = new LinkedList<String>(); int count = 0; int mark = -1; for (int i = 0; i < parts.length; i++) { String part = parts[i]; String nextPart = i < parts.length - 1 ? parts[i + 1] : null; if ("".equals(part)) { continue; } else if (":".equals(part) && ":".equals(nextPart)) { if (mark != -1) { throw new InvalidAddressException(address); } mark = count; } else if (!":".equals(part)) { count++; ipString.add(part); } } if (mark > -1) { final int remaining = (IPV6_LENGTH - count); for (int i = 0; i < remaining; i++) { ipString.add((i + mark), "0"); } } return ipString; }
private static Collection<String> parseIPV6parts(String[] parts, String address) { final LinkedList<String> ipString = new LinkedList<String>(); int count = 0; int mark = -1; for (int i = 0; i < parts.length; i++) { String part = parts[i]; String nextPart = i < parts.length - 1 ? parts[i + 1] : null; if ("".equals(part)) { continue; } else if (":".equals(part) && ":".equals(nextPart)) { if (mark != -1) { throw new InvalidAddressException(address); } mark = count; } else if (!":".equals(part)) { count++; ipString.add(part); } } if (mark > -1) { final int remaining = (IPV6_LENGTH - count); for (int i = 0; i < remaining; i++) { ipString.add((i + mark), "0"); } } return ipString; }
private static void parseIpv6(AddressMatcher matcher, String addrs) { String address = addrs; if (address.indexOf('%') > -1) { String[] parts = address.split("\\%"); address = parts[0]; } final String[] parts = address.split("((?<=:)|(?=:))"); final Collection<String> ipString = parseIPV6parts(parts, address); if (ipString.size() != IPV6_LENGTH) { throw new InvalidAddressException(address); } final String[] addressParts = ipString.toArray(new String[0]); checkIfAddressPartsAreValid(addressParts, address); matcher.setAddress(addressParts); }
throw new InvalidAddressException(address); parseIpv4(matcher, address); } else { throw new InvalidAddressException(address);
throw new InvalidAddressException(address); parseIpv4(matcher, address); } else { throw new InvalidAddressException(address);
private static void parseIpv6(AddressMatcher matcher, String addrs) { String address = addrs; if (address.indexOf('%') > -1) { String[] parts = address.split("\\%"); address = parts[0]; } final String[] parts = address.split("((?<=:)|(?=:))"); final Collection<String> ipString = parseIPV6parts(parts, address); if (ipString.size() != IPV6_LENGTH) { throw new InvalidAddressException(address); } final String[] addressParts = ipString.toArray(new String[0]); checkIfAddressPartsAreValid(addressParts, address); matcher.setAddress(addressParts); }
@Override public Throwable createException(String message, Throwable cause) { return new AddressUtil.InvalidAddressException(message, false); } });
private static void checkIfAddressPartsAreValid(String[] addressParts, String address) { for (String part : addressParts) { if (!isValidIpAddressPart(part, true)) { throw new InvalidAddressException(address); } } }
private static void parseIpv4(AddressMatcher matcher, String address) { final String[] parts = address.split("\\."); if (parts.length != IPV4_LENGTH) { throw new InvalidAddressException(address); } for (String part : parts) { if (!isValidIpAddressPart(part, false)) { throw new InvalidAddressException(address); } } matcher.setAddress(parts); }
private static void parseIpv4(AddressMatcher matcher, String address) { final String[] parts = address.split("\\."); if (parts.length != IPV4_LENGTH) { throw new InvalidAddressException(address); } for (String part : parts) { if (!isValidIpAddressPart(part, false)) { throw new InvalidAddressException(address); } } matcher.setAddress(parts); }
@Override public Throwable createException(String message, Throwable cause) { return new AddressUtil.InvalidAddressException(message, false); } });
private static void checkIfAddressPartsAreValid(String[] addressParts, String address) { for (String part : addressParts) { if (!isValidIpAddressPart(part, true)) { throw new InvalidAddressException(address); } } }