public final class NetUtil
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private static int |
IPV4_BYTE_COUNT
Number of bytes needed to represent and IPV4 value
|
private static int |
IPV4_MAX_CHAR_BETWEEN_SEPARATOR
Maximum amount of value adding characters in between IPV4 separators
|
private static boolean |
IPV4_PREFERRED
true if ipv4 should be used on a system that supports ipv4 and ipv6. |
private static int |
IPV4_SEPARATORS
Number of separators that must be present in an IPv4 string
|
private static int |
IPV6_BYTE_COUNT
Number of bytes needed to represent and IPV6 value
|
private static int |
IPV6_MAX_CHAR_BETWEEN_SEPARATOR
Maximum amount of value adding characters in between IPV6 separators
|
private static int |
IPV6_MAX_CHAR_COUNT
The maximum number of characters for an IPV6 string with no scope
|
private static int |
IPV6_MAX_SEPARATORS
Maximum number of separators that must be present in an IPv6 string
|
private static int |
IPV6_MIN_SEPARATORS
Minimum number of separators that must be present in an IPv6 string
|
private static int |
IPV6_WORD_COUNT
This defines how many words (represented as ints) are needed to represent an IPv6 address
|
static java.net.InetAddress |
LOCALHOST
The
InetAddress that represents the loopback address. |
static java.net.Inet4Address |
LOCALHOST4
The
Inet4Address that represents the IPv4 loopback address '127.0.0.1' |
static java.net.Inet6Address |
LOCALHOST6
The
Inet6Address that represents the IPv6 loopback address '::1' |
private static InternalLogger |
logger
The logger being used by this class
|
static java.net.NetworkInterface |
LOOPBACK_IF
The loopback
NetworkInterface of the current machine |
static int |
SOMAXCONN
The SOMAXCONN value of the current machine.
|
Modifier | Constructor and Description |
---|---|
private |
NetUtil()
A constructor to stop this class being constructed.
|
Modifier and Type | Method and Description |
---|---|
private static void |
convertToBytes(java.lang.String hexWord,
byte[] ipByteArray,
int byteIndex)
Converts a 4 character hex word into a 2 byte word equivalent
|
static byte[] |
createByteArrayFromIpAddressString(java.lang.String ipAddressString)
Creates an byte[] based on an ipAddressString.
|
static java.net.Inet6Address |
getByName(java.lang.CharSequence ip)
Returns the
Inet6Address representation of a CharSequence IP address. |
static java.net.Inet6Address |
getByName(java.lang.CharSequence ip,
boolean ipv4Mapped)
Returns the
Inet6Address representation of a CharSequence IP address. |
(package private) static int |
getIntValue(char c) |
private static boolean |
inRangeEndExclusive(int value,
int start,
int end)
Does a range check on
value if is within start (inclusive) and end (exclusive). |
static boolean |
isIpV4StackPreferred()
Returns
true if ipv4 should be prefered on a system that supports ipv4 and ipv6. |
private static boolean |
isValidHexChar(char c) |
static boolean |
isValidIp4Word(java.lang.String word)
Deprecated.
Do not use; published by mistake.
|
static boolean |
isValidIpV4Address(java.lang.String value)
Takes a string and parses it to see if it is a valid IPV4 address.
|
static boolean |
isValidIpV6Address(java.lang.String ipAddress) |
private static boolean |
isValidNumericChar(char c) |
static java.lang.String |
toAddressString(java.net.InetAddress ip)
Returns the
String representation of an InetAddress . |
static java.lang.String |
toAddressString(java.net.InetAddress ip,
boolean ipv4Mapped)
Returns the
String representation of an InetAddress . |
public static final java.net.Inet4Address LOCALHOST4
Inet4Address
that represents the IPv4 loopback address '127.0.0.1'public static final java.net.Inet6Address LOCALHOST6
Inet6Address
that represents the IPv6 loopback address '::1'public static final java.net.InetAddress LOCALHOST
InetAddress
that represents the loopback address. If IPv6 stack is available, it will refer to
LOCALHOST6
. Otherwise, LOCALHOST4
.public static final java.net.NetworkInterface LOOPBACK_IF
NetworkInterface
of the current machinepublic static final int SOMAXCONN
200
is used as a
default value for Windows or 128
for others.private static final int IPV6_WORD_COUNT
private static final int IPV6_MAX_CHAR_COUNT
private static final int IPV6_BYTE_COUNT
private static final int IPV6_MAX_CHAR_BETWEEN_SEPARATOR
private static final int IPV6_MIN_SEPARATORS
private static final int IPV6_MAX_SEPARATORS
private static final int IPV4_BYTE_COUNT
private static final int IPV4_MAX_CHAR_BETWEEN_SEPARATOR
private static final int IPV4_SEPARATORS
private static final boolean IPV4_PREFERRED
true
if ipv4 should be used on a system that supports ipv4 and ipv6.private static final InternalLogger logger
public static boolean isIpV4StackPreferred()
true
if ipv4 should be prefered on a system that supports ipv4 and ipv6.public static byte[] createByteArrayFromIpAddressString(java.lang.String ipAddressString)
private static void convertToBytes(java.lang.String hexWord, byte[] ipByteArray, int byteIndex)
static int getIntValue(char c)
public static boolean isValidIpV6Address(java.lang.String ipAddress)
@Deprecated public static boolean isValidIp4Word(java.lang.String word)
private static boolean isValidHexChar(char c)
private static boolean isValidNumericChar(char c)
public static boolean isValidIpV4Address(java.lang.String value)
public static java.net.Inet6Address getByName(java.lang.CharSequence ip)
Inet6Address
representation of a CharSequence
IP address.
This method will treat all IPv4 type addresses as "IPv4 mapped" (see getByName(CharSequence, boolean)
)
ip
- CharSequence
IP address to be converted to a Inet6Address
Inet6Address
representation of the ip
or null
if not a valid IP address.public static java.net.Inet6Address getByName(java.lang.CharSequence ip, boolean ipv4Mapped)
Inet6Address
representation of a CharSequence
IP address.
The ipv4Mapped
parameter specifies how IPv4 addresses should be treated.
"IPv4 mapped" format as
defined in rfc 4291 section 2 is supported.
ip
- CharSequence
IP address to be converted to a Inet6Address
ipv4Mapped
- true
To allow IPv4 mapped inputs to be translated into Inet6Address
false
Don't turn IPv4 addressed to mapped addressesInet6Address
representation of the ip
or null
if not a valid IP address.public static java.lang.String toAddressString(java.net.InetAddress ip)
String
representation of an InetAddress
.
InetAddress.getHostAddress()
The output does not include Scope ID.
ip
- InetAddress
to be converted to an address stringString
containing the text-formatted IP addresspublic static java.lang.String toAddressString(java.net.InetAddress ip, boolean ipv4Mapped)
String
representation of an InetAddress
.
InetAddress.getHostAddress()
ipv4Mapped
is false. If ipv4Mapped
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 4The output does not include Scope ID.
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 5952String
containing the text-formatted IP addressprivate static boolean inRangeEndExclusive(int value, int start, int end)
value
if is within start
(inclusive) and end
(exclusive).value
- The value to checked if is within start
(inclusive) and end
(exclusive)start
- The start of the range (inclusive)end
- The end of the range (exclusive)true
if value
if is within start
(inclusive) and end
(exclusive)false
otherwise