IpPrefix


public final class IpPrefix
extends Object implements Parcelable

java.lang.Object
   ↳ android.net.IpPrefix


This class represents an IP prefix, i.e., a contiguous block of IP addresses aligned on a power of two boundary (also known as an "IP subnet"). A prefix is specified by two pieces of information:

  • A starting IP address (IPv4 or IPv6). This is the first IP address of the prefix.
  • A prefix length. This specifies the length of the prefix by specifing the number of bits in the IP address, starting from the most significant bit in network byte order, that are constant for all addresses in the prefix.
For example, the prefix 192.0.2.0/24 covers the 256 IPv4 addresses from 192.0.2.0 to 192.0.2.255, inclusive, and the prefix 2001:db8:1:2 covers the 2^64 IPv6 addresses from 2001:db8:1:2:: to 2001:db8:1:2:ffff:ffff:ffff:ffff, inclusive. Objects of this class are immutable.

Summary

Inherited constants

Fields

public static final Creator<IpPrefix> CREATOR

Implement the Parcelable interface.

Public constructors

IpPrefix(InetAddress address, int prefixLength)

Constructs a new IpPrefix from an IPv4 or IPv6 address and a prefix length.

Public methods

boolean contains(InetAddress address)

Determines whether the prefix contains the specified address.

int describeContents()

Implement the Parcelable interface.

boolean equals(Object obj)

Compares this IpPrefix object against the specified object in obj.

InetAddress getAddress()

Returns a copy of the first IP address in the prefix.

int getPrefixLength()

Returns the prefix length of this IpPrefix.

byte[] getRawAddress()

Returns a copy of the IP address bytes in network order (the highest order byte is the zeroth element).

int hashCode()

Gets the hashcode of the represented IP prefix.

String toString()

Returns a string representation of this IpPrefix.

void writeToParcel(Parcel dest, int flags)

Implement the Parcelable interface.

Inherited methods

Fields

CREATOR

Added in API level 21
public static final Creator<IpPrefix> CREATOR

Implement the Parcelable interface.

Public constructors

IpPrefix

Added in API level 33
public IpPrefix (InetAddress address, 
                int prefixLength)

Constructs a new IpPrefix from an IPv4 or IPv6 address and a prefix length. Silently truncates the address to the prefix length, so for example 192.0.2.1/24 is silently converted to 192.0.2.0/24.

Parameters
address InetAddress: the IP address. Must be non-null.

prefixLength int: the prefix length. Must be >= 0 and <= (32 or 128) (IPv4 or IPv6). Value is between 0 and 128 inclusive

Public methods

contains

Added in API level 23
public boolean contains (InetAddress address)

Determines whether the prefix contains the specified address.

Parameters
address InetAddress: An InetAddress to test. This value cannot be null.

Returns
boolean true if the prefix covers the given address. false otherwise.

describeContents

Added in API level 21
public int describeContents ()

Implement the Parcelable interface.

Returns
int a bitmask indicating the set of special object types marshaled by this Parcelable object instance. Value is either 0 or CONTENTS_FILE_DESCRIPTOR

equals

Added in API level 21
public boolean equals (Object obj)

Compares this IpPrefix object against the specified object in obj. Two objects are equal if they have the same startAddress and prefixLength.

Parameters
obj Object: the object to be tested for equality. This value may be null.

Returns
boolean true if both objects are equal, false otherwise.

getAddress

Added in API level 21
public InetAddress getAddress ()

Returns a copy of the first IP address in the prefix. Modifying the returned object does not change this object's contents.

Returns
InetAddress the address in the form of a byte array. This value cannot be null.

getPrefixLength

Added in API level 21
public int getPrefixLength ()

Returns the prefix length of this IpPrefix.

Returns
int the prefix length. Value is between 0 and 128 inclusive

getRawAddress

Added in API level 21
public byte[] getRawAddress ()

Returns a copy of the IP address bytes in network order (the highest order byte is the zeroth element). Modifying the returned array does not change this object's contents.

Returns
byte[] the address in the form of a byte array. This value cannot be null.

hashCode

Added in API level 21
public int hashCode ()

Gets the hashcode of the represented IP prefix.

Returns
int the appropriate hashcode value.

toString

Added in API level 21
public String toString ()

Returns a string representation of this IpPrefix.

Returns
String a string such as "192.0.2.0/24" or "2001:db8:1:2::/64".

writeToParcel

Added in API level 21
public void writeToParcel (Parcel dest, 
                int flags)

Implement the Parcelable interface.

Parameters
dest Parcel: The Parcel in which the object should be written. This value cannot be null.

flags int: Additional flags about how the object should be written. May be 0 or Parcelable.PARCELABLE_WRITE_RETURN_VALUE. Value is either 0 or a combination of Parcelable.PARCELABLE_WRITE_RETURN_VALUE, and android.os.Parcelable.PARCELABLE_ELIDE_DUPLICATES