Exemple #1
0
 /**
  * parse IPV4 ARPA domain to IP bytes.
  *
  * @param name an ARPA string.
  * @return ARPA.
  */
 private static NetworkInBytes parseIpV4Arpa(String name) {
   LOGGER.debug("parseInAddrArpa, name:" + name);
   String arpa = StringUtils.removeEndIgnoreCase(name, CHAR_DOT + DomainUtil.IPV4_ARPA_SUFFIX);
   arpa = StringUtils.reverseDelimited(arpa, CHAR_DOT);
   String[] arpaLabels = StringUtils.split(arpa, CHAR_DOT);
   int mask = arpaLabels.length * 8;
   String[] ipLabels = new String[BYTE_SIZE_IPV4];
   for (int i = 0; i < BYTE_SIZE_IPV4; i++) {
     if (i < arpaLabels.length) {
       ipLabels[i] = arpaLabels[i];
     } else {
       ipLabels[i] = "0";
     }
   }
   String networkStr = StringUtils.join(ipLabels, CHAR_DOT) + "/" + mask;
   return IpUtil.parseNetworkV4(networkStr);
 }
Exemple #2
0
 /**
  * parse IPV6 ARPA domain to IP bytes.
  *
  * @param name an ARPA string.
  * @return ARPA.
  */
 private static NetworkInBytes parseIpV6Arpa(String name) {
   LOGGER.debug("parseIp6Arpa, name:" + name);
   String arpa = StringUtils.removeEndIgnoreCase(name, CHAR_DOT + DomainUtil.IPV6_ARPA_SUFFIX);
   arpa = StringUtils.remove(arpa, CHAR_DOT);
   String ip = StringUtils.reverse(arpa);
   String fullIp = StringUtils.rightPad(ip, 32, '0');
   byte[] startIpBytes = DatatypeConverter.parseHexBinary(fullIp);
   int networkMask = StringUtils.length(arpa) * 4;
   IPv6Address fromByteArray = IPv6Address.fromByteArray(startIpBytes);
   IPv6Network network =
       IPv6Network.fromAddressAndMask(
           fromByteArray, IPv6NetworkMask.fromPrefixLength(networkMask));
   NetworkInBytes result =
       new NetworkInBytes(
           IpVersion.V6, network.getFirst().toByteArray(), network.getLast().toByteArray());
   return result;
 }