Package com.couchbase.client.core.util
Class NetworkAddress
java.lang.Object
com.couchbase.client.core.util.NetworkAddress
A convenient wrapper class around network primitives in Java.
IMPORTANT: DO NOT USE THIS CLASS IF YOU DO NOT KNOW ABSOLUTELY WHAT YOU ARE DOING.
This class has only been brought forward from SDK 2 because we need compatibility
for the
Sdk2CompatibleMemcachedHashingStrategy
.
Please refrain from using it, since it has lots of drawbacks, mostly around
Reverse DNS resolving.
How IPv6 is handled:
If a hostname is passed in as input instead of a literal IP address, then the class
relies on InetAddress.getAllByName(String)
to perform a lookup. By default
the JVM prefers IPv4 for this lookup in dual stack environments, unless the system
property "java.net.preferIPv6Addresses" is set to true on startup. In this case,
IPv6 is preferred and automatically selected.
Note that there is one specific case where if IPv6 is preferred in dual stack and
you are running Couchbase Server pre 5.1 which does not support IPv6, then you must
set the system property "com.couchbase.forceIPv4" to true so that the firstly
returned IPv6 address is ignored and we are looking for an IPv4 address to be
resolved as well. Obviously, in a single IPv6 stack environment working with older
Couchbase Server releases won't work.- Since:
- 1.4.6
- Author:
- Michael Nitschinger
-
Field Details
-
REVERSE_DNS_PROPERTY
- See Also:
-
FORCE_IPV4_PROPERTY
- See Also:
-
ALLOW_REVERSE_DNS
public static final boolean ALLOW_REVERSE_DNSFlag which controls the usage of reverse dns -
FORCE_IPV4
public static final boolean FORCE_IPV4Flag which controls if even if ipv6 is present, IPv4 should be preferred.
-
-
Method Details
-
create
Creates a newNetworkAddress
from either a hostname or ip address literal. -
hostname
Returns the hostname for this network address.- Returns:
- the hostname.
-
toString
-
equals
-
hashCode
public int hashCode()
-