Class NetworkUtils

java.lang.Object
org.keycloak.common.util.NetworkUtils

public class NetworkUtils extends Object
Utility methods related to networking.
Author:
Brian Stansberry (c) 2011 Red Hat Inc.
  • Method Details

    • formatPossibleIpv6Address

      public static String formatPossibleIpv6Address(String address)
    • canonize

      public static String canonize(String ipv6Address) throws IllegalArgumentException

      Convert IPv6 address into RFC 5952 form. E.g. 2001:db8:0:1:0:0:0:1 -> 2001:db8:0:1::1

      Method is null safe, and if IPv4 address or host name is passed to the method it is returned without any processing.

      Method also supports IPv4 in IPv6 (e.g. 0:0:0:0:0:ffff:192.0.2.1 -> ::ffff:192.0.2.1), and zone ID (e.g. fe80:0:0:0:f0f0:c0c0:1919:1234%4 -> fe80::f0f0:c0c0:1919:1234%4).

      Parameters:
      ipv6Address - String representing valid IPv6 address.
      Returns:
      String representing IPv6 in canonical form.
      Throws:
      IllegalArgumentException - if IPv6 format is unacceptable.
    • formatAddress

      public static String formatAddress(InetAddress inet)
      Formats input address. For IPV4 returns simply host address, for IPV6 formats address according to RFC5952 rules. It does not embed IPV6 address in '[', ']', since those are part of IPV6 URI literal.
      Parameters:
      inet -
      Returns:
    • formatAddress

      public static String formatAddress(InetSocketAddress inet)
      Converts socket address into string literal, which has form: 'address:port'. Example:
      • 127.0.0.1:8080
      • dns.name.com:8080
      • [0fe:1::20]:8080
      • [::1]:8080
      Parameters:
      inet -
      Returns:
    • isBindingToMulticastDressSupported

      public static boolean isBindingToMulticastDressSupported()
    • checkForMac

      public static boolean checkForMac()