Class DualStackUtils

java.lang.Object
net.minecraftforge.network.DualStackUtils

public class DualStackUtils extends Object
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private static final String
     
    private static final String
     
    private static final org.slf4j.Logger
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static boolean
    checkIPv6(String hostAddress)
    Resolve the address and see if Java and the OS return an IPv6 or IPv4 one, then let Netty know accordingly (it doesn't understand the java.net.preferIPv6Addresses=system property).
    static boolean
    checkIPv6(InetAddress inetAddress)
    Checks if an address is an IPv6 one or an IPv4 one, lets Netty know accordingly and returns the result.
    Get the device's local IP address, taking into account scenarios where the client's network adapter supports IPv6 and has it enabled but the router's LAN does not.
    static String
    Used for the "Open to LAN" feature.
    static void
    Called by MinecraftForge to load this class so that the initial network property constants are set before any of the other methods in this class are called.
    static void
    Logs the initial values of the java.net.preferIPv4Stack and java.net.preferIPv6Addresses system properties that Java has read on JVM start.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • INITIAL_PREFER_IPv4_STACK

      private static final String INITIAL_PREFER_IPv4_STACK
    • INITIAL_PREFER_IPv6_ADDRESSES

      private static final String INITIAL_PREFER_IPv6_ADDRESSES
    • LOGGER

      private static final org.slf4j.Logger LOGGER
  • Constructor Details

    • DualStackUtils

      public DualStackUtils()
  • Method Details

    • initialise

      @Internal public static void initialise()
      Called by MinecraftForge to load this class so that the initial network property constants are set before any of the other methods in this class are called. This is so we can distinguish what Java's read once on JVM start vs what we've set for Netty.
    • checkIPv6

      public static boolean checkIPv6(String hostAddress)
      Resolve the address and see if Java and the OS return an IPv6 or IPv4 one, then let Netty know accordingly (it doesn't understand the java.net.preferIPv6Addresses=system property).
      Parameters:
      hostAddress - The address you want to check
      Returns:
      true if IPv6, false if IPv4
    • checkIPv6

      public static boolean checkIPv6(InetAddress inetAddress)
      Checks if an address is an IPv6 one or an IPv4 one, lets Netty know accordingly and returns the result.
      Parameters:
      inetAddress - The address you want to check
      Returns:
      true if IPv6, false if IPv4
    • getLocalAddress

      @Nullable public static InetAddress getLocalAddress()
      Get the device's local IP address, taking into account scenarios where the client's network adapter supports IPv6 and has it enabled but the router's LAN does not.
      Returns:
      the client's local IP address or null if unable to determine it
    • getMulticastGroup

      public static String getMulticastGroup()
      Used for the "Open to LAN" feature.
      Returns:
      The multicast group to use for LAN discovery - IPv6 if available, IPv4 otherwise.
    • logInitialPreferences

      public static void logInitialPreferences()
      Logs the initial values of the java.net.preferIPv4Stack and java.net.preferIPv6Addresses system properties that Java has read on JVM start. Useful for debugging hostname lookup failures.