Top Description Fields Constructors Methods
org.apache.sshd.common.util.net

public Class SshdSocketAddress

extends SocketAddress
Class Inheritance
Imports
java.net.Inet4Address, .InetAddress, .InetSocketAddress, .NetworkInterface, .SocketAddress, .SocketException, java.util.ArrayList, .Arrays, .Collections, .Comparator, .Enumeration, .LinkedHashSet, .List, .Map, .Objects, .Set, org.apache.sshd.common.util.GenericUtils, .MapEntryUtils, .NumberUtils, .ValidateUtils

A simple socket address holding the host name and port number. The reason it does not extend InetSocketAddress is twofold:
  1. The InetSocketAddress performs a DNS resolution on the provided host name - which we don't want do use until we want to create a connection using this address (thus the toInetSocketAddress() call which executes this query
  2. If empty host name is provided we replace it with the any address of 0.0.0.0
Author
Apache MINA SSHD Project

Field Summary

Modifier and TypeField and Description
public static final String
public static final Comparator<InetAddress>
BY_HOST_ADDRESS

Compares InetAddress-es according to their InetAddress#getHostAddress() value case insensitive

public static final Comparator<SocketAddress>
BY_HOST_AND_PORT

Compares SocketAddress-es according to their host case insensitive and if equals, then according to their port value (if any)

public static final String
private final String
public static final String
public static final String
public static final String
public static final int
public static final int
public static final String
public static final String
public static final SshdSocketAddress
LOCALHOST_ADDRESS

A dummy placeholder that can be used instead of nulls

public static final String
public static final String
private final int
public static final String
public static final String
public static final String
private static final long
public static final Set<String>
public static final Set<String>

Constructor Summary

AccessConstructor and Description
public
public
public
SshdSocketAddress(String hostName, int port)

Method Summary

Modifier and TypeMethod and Description
public boolean
equals(Object
the reference object with which to compare.
o
)

Overrides java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.

public static <V> V
public static <V> Map.Entry<SshdSocketAddress, ? extends V>
public static List<InetAddress>

Returns:

a List of local network addresses which are not multicast or localhost sorted according to BY_HOST_ADDRESS
getExternalNetwork4Addresses
()

public static InetAddress

Returns:

Inet4Address associated with an external interface DevNote: We actually return InetAddress here, as Inet4Addresses are final and cannot be mocked.
getFirstExternalNetwork4Address
()

Returns the first external network address assigned to this machine or null if one is not found.

public String
public int
public int
hashCode()

Overrides java.lang.Object.hashCode.

Returns a hash code value for this object.

public static boolean

Returns:

true if the address is in the 100.64.0.0/10 range
isCarrierGradeNatIPv4Address
(String
The address to be checked
addr
)

protected boolean
public static boolean
isEquivalentHostName(String h1, String h2, boolean allowWildcard)

public static boolean
public static boolean
public static boolean
public static boolean
public static boolean

Returns:

true if the address is a loopback one

Note

if InetAddress#isLoopbackAddress() returns false the address string is checked

isLoopback
(InetAddress
The InetAddress to be considered
addr
)

public static boolean

Returns:

true if the IP is "localhost" or "127.x.x.x".
isLoopback
(String
IP value to be tested
ip
)

public static boolean
public static boolean

Returns:

true if this is one of the allocated private blocks

Note

it assumes that the address string is indeed an IPv4 address

isPrivateIPv4Address
(String
The address string
addr
)

Checks if the address is one of the allocated private blocks

public static boolean

Returns:

true if the address is:
  • Not null
  • An Inet4Address
  • Not link local
  • Not a multicast
  • Not a loopback
isValidHostAddress
(InetAddress
The InetAddress to be verified
addr
)

public static boolean

Returns:

true if valid IPv4 address component
isValidIPv4AddressComponent
(CharSequence
The CharSequence to be validate
c
)

Checks if the provided argument is a valid IPv4 address component:

  • Not null/empty
  • Has at most 3 digits
  • Its value is ≤ 255
public static boolean
public static <V> V
public static int

Returns:

The associated port value - negative if failed to resolve
toAddressPort
(SocketAddress
The SocketAddress to examine
addr
)

Attempts to resolve the port value

public static String
public static String
public InetSocketAddress
public static InetSocketAddress

Returns:

The InetSocketAddress instance
toInetSocketAddress
(SocketAddress
The SocketAddress - ignored if null
remoteAddress
)

Converts a SocketAddress into an InetSocketAddress if possible:

public static SshdSocketAddress
public String
toString()

Overrides java.lang.Object.toString.

Returns a string representation of the object.

Field Detail

BROADCAST_ADDRESSback to summary
public static final String BROADCAST_ADDRESS
BY_HOST_ADDRESSback to summary
public static final Comparator<InetAddress> BY_HOST_ADDRESS

Compares InetAddress-es according to their InetAddress#getHostAddress() value case insensitive

See Also
toAddressString(InetAddress)
BY_HOST_AND_PORTback to summary
public static final Comparator<SocketAddress> BY_HOST_AND_PORT

Compares SocketAddress-es according to their host case insensitive and if equals, then according to their port value (if any)

See Also
toAddressString(SocketAddress), toAddressPort(SocketAddress)
CARRIER_GRADE_NAT_PREFIXback to summary
public static final String CARRIER_GRADE_NAT_PREFIX
hostNameback to summary
private final String hostName
IPV4_ANYADDRback to summary
public static final String IPV4_ANYADDR
IPV6_LONG_ANY_ADDRESSback to summary
public static final String IPV6_LONG_ANY_ADDRESS
IPV6_LONG_LOCALHOSTback to summary
public static final String IPV6_LONG_LOCALHOST
IPV6_MAX_HEX_DIGITS_PER_GROUPback to summary
public static final int IPV6_MAX_HEX_DIGITS_PER_GROUP

Max. hex digits in each IPv6 group

IPV6_MAX_HEX_GROUPSback to summary
public static final int IPV6_MAX_HEX_GROUPS

Max. number of hex groups (separated by ":") in an IPV6 address

IPV6_SHORT_ANY_ADDRESSback to summary
public static final String IPV6_SHORT_ANY_ADDRESS
IPV6_SHORT_LOCALHOSTback to summary
public static final String IPV6_SHORT_LOCALHOST
LOCALHOST_ADDRESSback to summary
public static final SshdSocketAddress LOCALHOST_ADDRESS

A dummy placeholder that can be used instead of nulls

LOCALHOST_IPV4back to summary
public static final String LOCALHOST_IPV4
LOCALHOST_NAMEback to summary
public static final String LOCALHOST_NAME
portback to summary
private final int port
PRIVATE_CLASS_A_PREFIXback to summary
public static final String PRIVATE_CLASS_A_PREFIX
PRIVATE_CLASS_B_PREFIXback to summary
public static final String PRIVATE_CLASS_B_PREFIX
PRIVATE_CLASS_C_PREFIXback to summary
public static final String PRIVATE_CLASS_C_PREFIX
serialVersionUIDback to summary
private static final long serialVersionUID

Hides java.net.SocketAddress.serialVersionUID.

WELL_KNOWN_IPV4_ADDRESSESback to summary
public static final Set<String> WELL_KNOWN_IPV4_ADDRESSES
WELL_KNOWN_IPV6_ADDRESSESback to summary
public static final Set<String> WELL_KNOWN_IPV6_ADDRESSES

Constructor Detail

SshdSocketAddressback to summary
public SshdSocketAddress(int port)
SshdSocketAddressback to summary
public SshdSocketAddress(InetSocketAddress addr)
SshdSocketAddressback to summary
public SshdSocketAddress(String hostName, int port)

Method Detail

equalsback to summary
public boolean equals(Object o)

Overrides java.lang.Object.equals.

Doc from java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.

The equals method implements an equivalence relation on non-null object references:

  • It is reflexive: for any non-null reference value x, x.equals(x) should return true.
  • It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
  • It is consistent: for any non-null reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the objects is modified.
  • For any non-null reference value x, x.equals(null) should return false.

An equivalence relation partitions the elements it operates on into equivalence classes; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes.

Parameters
o:Object

the reference object with which to compare.

Returns:boolean

true if this object is the same as the obj argument; false otherwise.

Annotations
@Override
findByOptionalWildcardAddressback to summary
public static <V> V findByOptionalWildcardAddress(Map<SshdSocketAddress, ? extends V> map, SshdSocketAddress address)
findMatchingOptionalWildcardEntryback to summary
public static <V> Map.Entry<SshdSocketAddress, ? extends V> findMatchingOptionalWildcardEntry(Map<SshdSocketAddress, ? extends V> map, SshdSocketAddress address)
getExternalNetwork4Addressesback to summary
public static List<InetAddress> getExternalNetwork4Addresses()
Returns:List<InetAddress>

a List of local network addresses which are not multicast or localhost sorted according to BY_HOST_ADDRESS

getFirstExternalNetwork4Addressback to summary
public static InetAddress getFirstExternalNetwork4Address()

Returns the first external network address assigned to this machine or null if one is not found.

Returns:InetAddress

Inet4Address associated with an external interface DevNote: We actually return InetAddress here, as Inet4Addresses are final and cannot be mocked.

getHostNameback to summary
public String getHostName()
getPortback to summary
public int getPort()
hashCodeback to summary
public int hashCode()

Overrides java.lang.Object.hashCode.

Doc from java.lang.Object.hashCode.

Returns a hash code value for this object. This method is supported for the benefit of hash tables such as those provided by java.util.HashMap.

The general contract of hashCode is:

  • Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
  • If two objects are equal according to the equals method, then calling the hashCode method on each of the two objects must produce the same integer result.
  • It is not required that if two objects are unequal according to the equals method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.
Returns:int

a hash code value for this object

Annotations
@Override
isCarrierGradeNatIPv4Addressback to summary
public static boolean isCarrierGradeNatIPv4Address(String addr)
Parameters
addr:String

The address to be checked

Returns:boolean

true if the address is in the 100.64.0.0/10 range

See Also
RFC6598
isEquivalentback to summary
protected boolean isEquivalent(SshdSocketAddress that)
isEquivalentHostNameback to summary
public static boolean isEquivalentHostName(String h1, String h2, boolean allowWildcard)
isIPv4Addressback to summary
public static boolean isIPv4Address(String addr)
isIPv4LoopbackAddressback to summary
public static boolean isIPv4LoopbackAddress(String ip)
isIPv6Addressback to summary
public static boolean isIPv6Address(String address)
isIPv6LoopbackAddressback to summary
public static boolean isIPv6LoopbackAddress(String ip)
isLoopbackback to summary
public static boolean isLoopback(InetAddress addr)
Parameters
addr:InetAddress

The InetAddress to be considered

Returns:boolean

true if the address is a loopback one

Note

if InetAddress#isLoopbackAddress() returns false the address string is checked

See Also
toAddressString(InetAddress), isLoopback(String)
isLoopbackback to summary
public static boolean isLoopback(String ip)
Parameters
ip:String

IP value to be tested

Returns:boolean

true if the IP is "localhost" or "127.x.x.x".

isLoopbackAliasback to summary
public static boolean isLoopbackAlias(String h1, String h2)
isPrivateIPv4Addressback to summary
public static boolean isPrivateIPv4Address(String addr)

Checks if the address is one of the allocated private blocks

Parameters
addr:String

The address string

Returns:boolean

true if this is one of the allocated private blocks

Note

it assumes that the address string is indeed an IPv4 address

See Also
isIPv4Address(String), PRIVATE_CLASS_A_PREFIX, PRIVATE_CLASS_B_PREFIX, PRIVATE_CLASS_C_PREFIX, Wiki page
isValidHostAddressback to summary
public static boolean isValidHostAddress(InetAddress addr)
Parameters
addr:InetAddress

The InetAddress to be verified

Returns:boolean

true if the address is:

  • Not null
  • An Inet4Address
  • Not link local
  • Not a multicast
  • Not a loopback
See Also
InetAddress#isLinkLocalAddress(), InetAddress#isMulticastAddress()
isValidIPv4AddressComponentback to summary
public static boolean isValidIPv4AddressComponent(CharSequence c)

Checks if the provided argument is a valid IPv4 address component:

  • Not null/empty
  • Has at most 3 digits
  • Its value is ≤ 255
Parameters
c:CharSequence

The CharSequence to be validate

Returns:boolean

true if valid IPv4 address component

isWildcardAddressback to summary
public static boolean isWildcardAddress(String addr)
removeByOptionalWildcardAddressback to summary
public static <V> V removeByOptionalWildcardAddress(Map<SshdSocketAddress, ? extends V> map, SshdSocketAddress address)
toAddressPortback to summary
public static int toAddressPort(SocketAddress addr)

Attempts to resolve the port value

Parameters
addr:SocketAddress

The SocketAddress to examine

Returns:int

The associated port value - negative if failed to resolve

toAddressStringback to summary
public static String toAddressString(SocketAddress addr)
toAddressStringback to summary
public static String toAddressString(InetAddress addr)
toInetSocketAddressback to summary
public InetSocketAddress toInetSocketAddress()
toInetSocketAddressback to summary
public static InetSocketAddress toInetSocketAddress(SocketAddress remoteAddress)

Converts a SocketAddress into an InetSocketAddress if possible:

Parameters
remoteAddress:SocketAddress

The SocketAddress - ignored if null

Returns:InetSocketAddress

The InetSocketAddress instance

Exceptions
ClassCastException:
if argument is not already an InetSocketAddress or a SshdSocketAddress
toSshdSocketAddressback to summary
public static SshdSocketAddress toSshdSocketAddress(SocketAddress addr)
toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Doc from java.lang.Object.toString.

Returns a string representation of the object. Satisfying this method's contract implies a non-null result must be returned.

Returns:String

a string representation of the object

Annotations
@Override