Package net.neoforged.neoforge.network
Class DualStackUtils
java.lang.Object
net.neoforged.neoforge.network.DualStackUtils
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic boolean
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 thejava.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.static String
getAddressString
(SocketAddress address) Object.toString()
but with IPv6 address compression supportstatic @Nullable InetAddress
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 byNeoForge
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 thejava.net.preferIPv4Stack
andjava.net.preferIPv6Addresses
system properties that Java has read on JVM start.
-
Field Details
-
INITIAL_PREFER_IPv4_STACK
-
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 byNeoForge
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
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 thejava.net.preferIPv6Addresses=system
property).- Parameters:
hostAddress
- The address you want to check- Returns:
- true if IPv6, false if IPv4
-
checkIPv6
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
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
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 thejava.net.preferIPv4Stack
andjava.net.preferIPv6Addresses
system properties that Java has read on JVM start. Useful for debugging hostname lookup failures. -
getAddressString
Object.toString()
but with IPv6 address compression support
-