private static Range parseIpRangeFromCidr(final XContentParser parser) throws IOException { final Tuple<InetAddress, Integer> cidr = InetAddresses.parseCidr(parser.text()); // create the lower value by zeroing out the host portion, upper value by filling it with all ones. byte[] lower = cidr.v1().getAddress(); byte[] upper = lower.clone(); for (int i = cidr.v2(); i < 8 * lower.length; i++) { int m = 1 << 7 - (i & 7); lower[i >> 3] &= ~m; upper[i >> 3] |= m; } try { return new Range(RangeType.IP, InetAddress.getByAddress(lower), InetAddress.getByAddress(upper), true, true); } catch (UnknownHostException bogus) { throw new AssertionError(bogus); } }
Range(String key, String mask) { final Tuple<InetAddress, Integer> cidr = InetAddresses.parseCidr(mask); final InetAddress address = cidr.v1(); final int prefixLength = cidr.v2(); // create the lower value by zeroing out the host portion, upper value by filling it with all ones. byte lower[] = address.getAddress(); byte upper[] = address.getAddress(); for (int i = prefixLength; i < 8 * lower.length; i++) { int m = 1 << (7 - (i & 7)); lower[i >> 3] &= ~m; upper[i >> 3] |= m; } this.key = key; try { InetAddress fromAddress = InetAddress.getByAddress(lower); if (fromAddress.equals(InetAddressPoint.MIN_VALUE)) { this.from = null; } else { this.from = InetAddresses.toAddrString(fromAddress); } InetAddress inclusiveToAddress = InetAddress.getByAddress(upper); if (inclusiveToAddress.equals(InetAddressPoint.MAX_VALUE)) { this.to = null; } else { this.to = InetAddresses.toAddrString(InetAddressPoint.nextUp(inclusiveToAddress)); } } catch (UnknownHostException bogus) { throw new AssertionError(bogus); } }
@Override public Query termQuery(Object value, @Nullable QueryShardContext context) { failIfNotIndexed(); if (value instanceof InetAddress) { return InetAddressPoint.newExactQuery(name(), (InetAddress) value); } else { if (value instanceof BytesRef) { value = ((BytesRef) value).utf8ToString(); } String term = value.toString(); if (term.contains("/")) { final Tuple<InetAddress, Integer> cidr = InetAddresses.parseCidr(term); return InetAddressPoint.newPrefixQuery(name(), cidr.v1(), cidr.v2()); } InetAddress address = InetAddresses.forString(term); return InetAddressPoint.newExactQuery(name(), address); } }
private static Range parseIpRangeFromCidr(final XContentParser parser) throws IOException { final Tuple<InetAddress, Integer> cidr = InetAddresses.parseCidr(parser.text()); // create the lower value by zeroing out the host portion, upper value by filling it with all ones. byte[] lower = cidr.v1().getAddress(); byte[] upper = lower.clone(); for (int i = cidr.v2(); i < 8 * lower.length; i++) { int m = 1 << 7 - (i & 7); lower[i >> 3] &= ~m; upper[i >> 3] |= m; } try { return new Range(RangeType.IP, InetAddress.getByAddress(lower), InetAddress.getByAddress(upper), true, true); } catch (UnknownHostException bogus) { throw new AssertionError(bogus); } }
private static Range parseIpRangeFromCidr(final XContentParser parser) throws IOException { final Tuple<InetAddress, Integer> cidr = InetAddresses.parseCidr(parser.text()); // create the lower value by zeroing out the host portion, upper value by filling it with all ones. byte[] lower = cidr.v1().getAddress(); byte[] upper = lower.clone(); for (int i = cidr.v2(); i < 8 * lower.length; i++) { int m = 1 << 7 - (i & 7); lower[i >> 3] &= ~m; upper[i >> 3] |= m; } try { return new Range(RangeType.IP, InetAddress.getByAddress(lower), InetAddress.getByAddress(upper), true, true); } catch (UnknownHostException bogus) { throw new AssertionError(bogus); } }
private static Range parseIpRangeFromCidr(final XContentParser parser) throws IOException { final Tuple<InetAddress, Integer> cidr = InetAddresses.parseCidr(parser.text()); // create the lower value by zeroing out the host portion, upper value by filling it with all ones. byte[] lower = cidr.v1().getAddress(); byte[] upper = lower.clone(); for (int i = cidr.v2(); i < 8 * lower.length; i++) { int m = 1 << 7 - (i & 7); lower[i >> 3] &= ~m; upper[i >> 3] |= m; } try { return new Range(RangeType.IP, InetAddress.getByAddress(lower), InetAddress.getByAddress(upper), true, true); } catch (UnknownHostException bogus) { throw new AssertionError(bogus); } }
Range(String key, String mask) { final Tuple<InetAddress, Integer> cidr = InetAddresses.parseCidr(mask); final InetAddress address = cidr.v1(); final int prefixLength = cidr.v2(); // create the lower value by zeroing out the host portion, upper value by filling it with all ones. byte lower[] = address.getAddress(); byte upper[] = address.getAddress(); for (int i = prefixLength; i < 8 * lower.length; i++) { int m = 1 << (7 - (i & 7)); lower[i >> 3] &= ~m; upper[i >> 3] |= m; } this.key = key; try { InetAddress fromAddress = InetAddress.getByAddress(lower); if (fromAddress.equals(InetAddressPoint.MIN_VALUE)) { this.from = null; } else { this.from = InetAddresses.toAddrString(fromAddress); } InetAddress inclusiveToAddress = InetAddress.getByAddress(upper); if (inclusiveToAddress.equals(InetAddressPoint.MAX_VALUE)) { this.to = null; } else { this.to = InetAddresses.toAddrString(InetAddressPoint.nextUp(inclusiveToAddress)); } } catch (UnknownHostException bogus) { throw new AssertionError(bogus); } }
Range(String key, String mask) { final Tuple<InetAddress, Integer> cidr = InetAddresses.parseCidr(mask); final InetAddress address = cidr.v1(); final int prefixLength = cidr.v2(); // create the lower value by zeroing out the host portion, upper value by filling it with all ones. byte lower[] = address.getAddress(); byte upper[] = address.getAddress(); for (int i = prefixLength; i < 8 * lower.length; i++) { int m = 1 << (7 - (i & 7)); lower[i >> 3] &= ~m; upper[i >> 3] |= m; } this.key = key; try { InetAddress fromAddress = InetAddress.getByAddress(lower); if (fromAddress.equals(InetAddressPoint.MIN_VALUE)) { this.from = null; } else { this.from = InetAddresses.toAddrString(fromAddress); } InetAddress inclusiveToAddress = InetAddress.getByAddress(upper); if (inclusiveToAddress.equals(InetAddressPoint.MAX_VALUE)) { this.to = null; } else { this.to = InetAddresses.toAddrString(InetAddressPoint.nextUp(inclusiveToAddress)); } } catch (UnknownHostException bogus) { throw new AssertionError(bogus); } }
@Override public Query termQuery(Object value, @Nullable QueryShardContext context) { failIfNotIndexed(); if (value instanceof InetAddress) { return InetAddressPoint.newExactQuery(name(), (InetAddress) value); } else { if (value instanceof BytesRef) { value = ((BytesRef) value).utf8ToString(); } String term = value.toString(); if (term.contains("/")) { final Tuple<InetAddress, Integer> cidr = InetAddresses.parseCidr(term); return InetAddressPoint.newPrefixQuery(name(), cidr.v1(), cidr.v2()); } InetAddress address = InetAddresses.forString(term); return InetAddressPoint.newExactQuery(name(), address); } }
@Override public Query termQuery(Object value, @Nullable QueryShardContext context) { failIfNotIndexed(); if (value instanceof InetAddress) { return InetAddressPoint.newExactQuery(name(), (InetAddress) value); } else { if (value instanceof BytesRef) { value = ((BytesRef) value).utf8ToString(); } String term = value.toString(); if (term.contains("/")) { final Tuple<InetAddress, Integer> cidr = InetAddresses.parseCidr(term); return InetAddressPoint.newPrefixQuery(name(), cidr.v1(), cidr.v2()); } InetAddress address = InetAddresses.forString(term); return InetAddressPoint.newExactQuery(name(), address); } }