Package org.jboss.netty.util
Class NetUtil
java.lang.Object
org.jboss.netty.util.NetUtil
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
FieldsModifier and TypeFieldDescriptionprivate static final int
Number of bytes needed to represent and IPV4 valueprivate static final int
Maximum amount of value adding characters in between IPV4 separatorsprivate static final int
Number of separators that must be present in an IPv4 stringprivate static final int
Number of bytes needed to represent and IPV6 valueprivate static final int
Maximum amount of value adding characters in between IPV6 separatorsprivate static final int
The maximum number of characters for an IPV6 string with no scopeprivate static final int
Maximum number of separators that must be present in an IPv6 stringprivate static final int
Minimum number of separators that must be present in an IPv6 stringprivate static final int
This defines how many words (represented as ints) are needed to represent an IPv6 addressprivate static final InternalLogger
The logger being used by this class -
Constructor Summary
ConstructorsModifierConstructorDescriptionprivate
NetUtil()
A constructor to stop this class being constructed. -
Method Summary
Modifier and TypeMethodDescriptionprivate static void
convertToBytes
(String hexWord, byte[] ipByteArray, int byteIndex) Converts a 4 character hex word into a 2 byte word equivalentstatic byte[]
createByteArrayFromIpAddressString
(String ipAddressString) Creates an byte[] based on an ipAddressString.static Inet6Address
Returns theInet6Address
representation of aCharSequence
IP address.static Inet6Address
getByName
(CharSequence ip, boolean ipv4Mapped) Returns theInet6Address
representation of aCharSequence
IP address.(package private) static int
getIntValue
(char c) private static boolean
inRangeEndExclusive
(int value, int start, int end) Does a range check onvalue
if is withinstart
(inclusive) andend
(exclusive).private static boolean
isValidHexChar
(char c) static boolean
isValidIp4Word
(String word) static boolean
isValidIpV4Address
(String value) Takes a string and parses it to see if it is a valid IPV4 address.static boolean
isValidIpV6Address
(String ipAddress) private static boolean
isValidNumericChar
(char c) static String
Returns theString
representation of anInetAddress
.static String
toAddressString
(InetAddress ip, boolean ipv4Mapped) Returns theString
representation of anInetAddress
.
-
Field Details
-
IPV6_WORD_COUNT
private static final int IPV6_WORD_COUNTThis defines how many words (represented as ints) are needed to represent an IPv6 address- See Also:
-
IPV6_MAX_CHAR_COUNT
private static final int IPV6_MAX_CHAR_COUNTThe maximum number of characters for an IPV6 string with no scope- See Also:
-
IPV6_BYTE_COUNT
private static final int IPV6_BYTE_COUNTNumber of bytes needed to represent and IPV6 value- See Also:
-
IPV6_MAX_CHAR_BETWEEN_SEPARATOR
private static final int IPV6_MAX_CHAR_BETWEEN_SEPARATORMaximum amount of value adding characters in between IPV6 separators- See Also:
-
IPV6_MIN_SEPARATORS
private static final int IPV6_MIN_SEPARATORSMinimum number of separators that must be present in an IPv6 string- See Also:
-
IPV6_MAX_SEPARATORS
private static final int IPV6_MAX_SEPARATORSMaximum number of separators that must be present in an IPv6 string- See Also:
-
IPV4_BYTE_COUNT
private static final int IPV4_BYTE_COUNTNumber of bytes needed to represent and IPV4 value- See Also:
-
IPV4_MAX_CHAR_BETWEEN_SEPARATOR
private static final int IPV4_MAX_CHAR_BETWEEN_SEPARATORMaximum amount of value adding characters in between IPV4 separators- See Also:
-
IPV4_SEPARATORS
private static final int IPV4_SEPARATORSNumber of separators that must be present in an IPv4 string- See Also:
-
logger
The logger being used by this class
-
-
Constructor Details
-
NetUtil
private NetUtil()A constructor to stop this class being constructed.
-
-
Method Details
-
createByteArrayFromIpAddressString
Creates an byte[] based on an ipAddressString. No error handling is performed here. -
convertToBytes
Converts a 4 character hex word into a 2 byte word equivalent -
getIntValue
static int getIntValue(char c) -
isValidIpV6Address
-
isValidIp4Word
-
isValidHexChar
private static boolean isValidHexChar(char c) -
isValidNumericChar
private static boolean isValidNumericChar(char c) -
isValidIpV4Address
Takes a string 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
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
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
Don't turn IPv4 addressed to mapped addresses
- Returns:
Inet6Address
representation of theip
ornull
if not a valid IP address.
-
toAddressString
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
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
-
inRangeEndExclusive
private static boolean inRangeEndExclusive(int value, int start, int end) Does a range check onvalue
if is withinstart
(inclusive) andend
(exclusive).- Parameters:
value
- The value to checked if is withinstart
(inclusive) andend
(exclusive)start
- The start of the range (inclusive)end
- The end of the range (exclusive)- Returns:
true
ifvalue
if is withinstart
(inclusive) andend
(exclusive)false
otherwise
-