Class InetAddresses

java.lang.Object
org.elasticsearch.common.network.InetAddresses

public class InetAddresses extends Object
  • Constructor Details

    • InetAddresses

      public InetAddresses()
  • Method Details

    • isInetAddress

      public static boolean isInetAddress(String ipString)
    • toUriString

      public static String toUriString(InetAddress ip)
      Returns the string representation of an InetAddress suitable for inclusion in a URI.

      For IPv4 addresses, this is identical to InetAddress.getHostAddress(), but for IPv6 addresses it compresses zeroes and surrounds the text with square brackets; for example "[2001:db8::1]".

      Per section 3.2.2 of http://tools.ietf.org/html/rfc3986, a URI containing an IPv6 string literal is of the form "http://[2001:db8::1]:8888/index.html".

      Use of either toAddrString(java.net.InetAddress), InetAddress.getHostAddress(), or this method is recommended over InetAddress.toString() when an IP address string literal is desired. This is because InetAddress.toString() prints the hostname and the IP address string joined by a "/".

      Parameters:
      ip - InetAddress to be converted to URI string literal
      Returns:
      String containing URI-safe string literal
    • toAddrString

      public static String toAddrString(InetAddress ip)
      Returns the string representation of an InetAddress.

      For IPv4 addresses, this is identical to InetAddress.getHostAddress(), but for IPv6 addresses, the output follows RFC 5952 section 4. The main difference is that this method uses "::" for zero compression, while Java's version uses the uncompressed form.

      This method uses hexadecimal for all IPv6 addresses, including IPv4-mapped IPv6 addresses such as "::c000:201". The output does not include a Scope ID.

      Parameters:
      ip - InetAddress to be converted to an address string
      Returns:
      String containing the text-formatted IP address
      Since:
      10.0
    • forString

      public static InetAddress forString(String ipString)
      Returns the InetAddress having the given string representation.

      This deliberately avoids all nameservice lookups (e.g. no DNS).

      Parameters:
      ipString - String containing an IPv4 or IPv6 string literal, e.g. "192.168.0.1" or "2001:db8::1"
      Returns:
      InetAddress representing the argument
      Throws:
      IllegalArgumentException - if the argument is not a valid IP string literal
    • parseCidr

      public static org.elasticsearch.core.Tuple<InetAddress,Integer> parseCidr(String maskedAddress)
      Parse an IP address and its prefix length using the CIDR notation.
      Throws:
      IllegalArgumentException - if the string is not formatted as ip_address/prefix_length
      IllegalArgumentException - if the IP address is an IPv6-mapped ipv4 address
      IllegalArgumentException - if the prefix length is not in 0-32 for IPv4 addresses and 0-128 for IPv6 addresses
      NumberFormatException - if the prefix length is not an integer
    • toCidrString

      public static String toCidrString(InetAddress address, int prefixLength)
      Given an address and prefix length, returns the string representation of the range in CIDR notation. See toAddrString(java.net.InetAddress) for details on how the address is represented.