- java.lang.Object
-
- io.netty5.util.NetUtil
-
public final class NetUtil extends Object
A class that holds a number of network-related constants. This class borrowed some of its methods from a modified fork of the Inet6Util class which was part of Apache Harmony.
-
-
Field Summary
Fields Modifier and Type Field Description static InetAddress
LOCALHOST
TheInetAddress
that represents the loopback address.static Inet4Address
LOCALHOST4
TheInet4Address
that represents the IPv4 loopback address '127.0.0.1'static Inet6Address
LOCALHOST6
TheInet6Address
that represents the IPv6 loopback address '::1'static NetworkInterface
LOOPBACK_IF
The loopbackNetworkInterface
of the current machinestatic int
SOMAXCONN
The SOMAXCONN value of the current machine.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static Class<? extends InetAddress>
addressType(ProtocolFamily family)
Returns the address type for the givenProtocolFamily
.static String
bytesToIpAddress(byte[] bytes)
Converts 4-byte or 16-byte data into an IPv4 or IPv6 string respectively.static String
bytesToIpAddress(byte[] bytes, int offset, int length)
Converts 4-byte or 16-byte data into an IPv4 or IPv6 string respectively.static byte[]
createByteArrayFromIpAddressString(String ipAddressString)
Creates an byte[] based on an ipAddressString.static InetAddress
createInetAddressFromIpAddressString(String ipAddressString)
Creates anInetAddress
based on an ipAddressString or might return null if it can't be parsed.static ProtocolFamily
family(Class<? extends InetAddress> addressType)
Returns theProtocolFamily
for the given address type.static ProtocolFamily
family(InetAddress address)
Returns theProtocolFamily
for the givenInetAddress
.static Inet6Address
getByName(CharSequence ip)
Returns theInet6Address
representation of aCharSequence
IP address.static Inet6Address
getByName(CharSequence ip, boolean ipv4Mapped)
Returns theInet6Address
representation of aCharSequence
IP address.static String
getHostname(InetSocketAddress addr)
ReturnsInetSocketAddress.getHostString()
if Java >= 7, orInetSocketAddress.getHostName()
otherwise.static String
intToIpAddress(int i)
Converts a 32-bit integer into an IPv4 address.static int
ipv4AddressToInt(Inet4Address ipAddress)
ConvertInet4Address
intoint
static boolean
isFamilySupported(Class<? extends InetAddress> addressType, ProtocolFamily family)
Returnstrue
if theProtocolFamily
is supported by the given address type.static boolean
isFamilySupported(InetAddress address, ProtocolFamily family)
static boolean
isIpV4StackPreferred()
Returnstrue
if IPv4 should be used even if the system supports both IPv4 and IPv6.static boolean
isIpV6AddressesPreferred()
Returnstrue
if an IPv6 address should be preferred when a host has both an IPv4 address and an IPv6 address.static boolean
isValidIpV4Address(CharSequence ip)
Takes aCharSequence
and parses it to see if it is a valid IPV4 address.static boolean
isValidIpV4Address(String ip)
Takes aString
and parses it to see if it is a valid IPV4 address.static boolean
isValidIpV6Address(CharSequence ip)
static boolean
isValidIpV6Address(String ip)
static InetAddress
localHost(ProtocolFamily family)
Returns the localhostInetAddress
for this family.static String
toAddressString(InetAddress ip)
Returns theString
representation of anInetAddress
.static String
toAddressString(InetAddress ip, boolean ipv4Mapped)
Returns theString
representation of anInetAddress
.static String
toSocketAddressString(String host, int port)
Returns theString
representation of a host port combo.static String
toSocketAddressString(InetSocketAddress addr)
Returns theString
representation of anInetSocketAddress
.
-
-
-
Field Detail
-
LOCALHOST4
public static final Inet4Address LOCALHOST4
TheInet4Address
that represents the IPv4 loopback address '127.0.0.1'
-
LOCALHOST6
public static final Inet6Address LOCALHOST6
TheInet6Address
that represents the IPv6 loopback address '::1'
-
LOCALHOST
public static final InetAddress LOCALHOST
TheInetAddress
that represents the loopback address. If IPv6 stack is available, it will refer toLOCALHOST6
. Otherwise,LOCALHOST4
.
-
LOOPBACK_IF
public static final NetworkInterface LOOPBACK_IF
The loopbackNetworkInterface
of the current machine
-
SOMAXCONN
public static final int SOMAXCONN
The SOMAXCONN value of the current machine. If failed to get the value,200
is used as a default value for Windows and128
for others.
-
-
Method Detail
-
isIpV4StackPreferred
public static boolean isIpV4StackPreferred()
Returnstrue
if IPv4 should be used even if the system supports both IPv4 and IPv6. Setting this property totrue
will disable IPv6 support. The default value of this property isfalse
.- See Also:
- Java SE networking properties
-
isIpV6AddressesPreferred
public static boolean isIpV6AddressesPreferred()
Returnstrue
if an IPv6 address should be preferred when a host has both an IPv4 address and an IPv6 address. The default value of this property isfalse
.- See Also:
- Java SE networking properties
-
createByteArrayFromIpAddressString
public static byte[] createByteArrayFromIpAddressString(String ipAddressString)
Creates an byte[] based on an ipAddressString. No error handling is performed here.
-
createInetAddressFromIpAddressString
public static InetAddress createInetAddressFromIpAddressString(String ipAddressString)
Creates anInetAddress
based on an ipAddressString or might return null if it can't be parsed. No error handling is performed here.
-
ipv4AddressToInt
public static int ipv4AddressToInt(Inet4Address ipAddress)
ConvertInet4Address
intoint
-
intToIpAddress
public static String intToIpAddress(int i)
Converts a 32-bit integer into an IPv4 address.
-
bytesToIpAddress
public static String bytesToIpAddress(byte[] bytes)
Converts 4-byte or 16-byte data into an IPv4 or IPv6 string respectively.- Throws:
IllegalArgumentException
- iflength
is not4
nor16
-
bytesToIpAddress
public static String bytesToIpAddress(byte[] bytes, int offset, int length)
Converts 4-byte or 16-byte data into an IPv4 or IPv6 string respectively.- Throws:
IllegalArgumentException
- iflength
is not4
nor16
-
isValidIpV6Address
public static boolean isValidIpV6Address(String ip)
-
isValidIpV6Address
public static boolean isValidIpV6Address(CharSequence ip)
-
isValidIpV4Address
public static boolean isValidIpV4Address(CharSequence ip)
Takes aCharSequence
and parses it to see if it is a valid IPV4 address.- Returns:
- true, if the string represents an IPV4 address in dotted notation, false otherwise
-
isValidIpV4Address
public static boolean isValidIpV4Address(String ip)
Takes aString
and parses it to see if it is a valid IPV4 address.- Returns:
- true, if the string represents an IPV4 address in dotted notation, false otherwise
-
getByName
public static Inet6Address getByName(CharSequence ip)
Returns theInet6Address
representation of aCharSequence
IP address.This method will treat all IPv4 type addresses as "IPv4 mapped" (see
getByName(CharSequence, boolean)
)- Parameters:
ip
-CharSequence
IP address to be converted to aInet6Address
- Returns:
Inet6Address
representation of theip
ornull
if not a valid IP address.
-
getByName
public static Inet6Address getByName(CharSequence ip, boolean ipv4Mapped)
Returns theInet6Address
representation of aCharSequence
IP address.The
ipv4Mapped
parameter specifies how IPv4 addresses should be treated. "IPv4 mapped" format as defined in rfc 4291 section 2 is supported.- Parameters:
ip
-CharSequence
IP address to be converted to aInet6Address
ipv4Mapped
-true
To allow IPv4 mapped inputs to be translated intoInet6Address
false
Consider IPv4 mapped addresses as invalid.
- Returns:
Inet6Address
representation of theip
ornull
if not a valid IP address.
-
toSocketAddressString
public static String toSocketAddressString(InetSocketAddress addr)
- Parameters:
addr
-InetSocketAddress
to be converted to an address string- Returns:
String
containing the text-formatted IP address
-
toSocketAddressString
public static String toSocketAddressString(String host, int port)
Returns theString
representation of a host port combo.
-
toAddressString
public static String toAddressString(InetAddress ip)
Returns theString
representation of anInetAddress
.- Inet4Address results are identical to
InetAddress.getHostAddress()
- Inet6Address results adhere to rfc 5952 section 4
The output does not include Scope ID.
- Parameters:
ip
-InetAddress
to be converted to an address string- Returns:
String
containing the text-formatted IP address
- Inet4Address results are identical to
-
toAddressString
public static String toAddressString(InetAddress ip, boolean ipv4Mapped)
Returns theString
representation of anInetAddress
.- Inet4Address results are identical to
InetAddress.getHostAddress()
- Inet6Address results adhere to
rfc 5952 section 4 if
ipv4Mapped
is false. Ifipv4Mapped
is true then "IPv4 mapped" format from rfc 4291 section 2 will be supported. The compressed result will always obey the compression rules defined in rfc 5952 section 4
The output does not include Scope ID.
- Parameters:
ip
-InetAddress
to be converted to an address stringipv4Mapped
-true
to stray from strict rfc 5952 and support the "IPv4 mapped" format defined in rfc 4291 section 2 while still following the updated guidelines in rfc 5952 section 4false
to strictly follow rfc 5952
- Returns:
String
containing the text-formatted IP address
- Inet4Address results are identical to
-
getHostname
public static String getHostname(InetSocketAddress addr)
ReturnsInetSocketAddress.getHostString()
if Java >= 7, orInetSocketAddress.getHostName()
otherwise.- Parameters:
addr
- The address- Returns:
- the host string
-
isFamilySupported
public static boolean isFamilySupported(InetAddress address, ProtocolFamily family)
- Parameters:
address
- the address.family
- the family.- Returns:
true
if supported,false
otherwise.
-
isFamilySupported
public static boolean isFamilySupported(Class<? extends InetAddress> addressType, ProtocolFamily family)
Returnstrue
if theProtocolFamily
is supported by the given address type.- Parameters:
addressType
- the address type.family
- the family.- Returns:
true
if supported,false
otherwise.
-
addressType
public static Class<? extends InetAddress> addressType(ProtocolFamily family)
Returns the address type for the givenProtocolFamily
.- Parameters:
family
- the family.- Returns:
- the address type or
null
if not supported.
-
family
public static ProtocolFamily family(InetAddress address)
Returns theProtocolFamily
for the givenInetAddress
.- Parameters:
address
- the address.- Returns:
- the
ProtocolFamily
ornull
if not supported.
-
family
public static ProtocolFamily family(Class<? extends InetAddress> addressType)
Returns theProtocolFamily
for the given address type.- Parameters:
addressType
- the address type.- Returns:
- the
ProtocolFamily
ornull
if not supported.
-
localHost
public static InetAddress localHost(ProtocolFamily family)
Returns the localhostInetAddress
for this family.- Parameters:
family
- the family.- Returns:
- localhost address.
-
-