Package netaddr :: Package ip :: Class IPAddress |
[hide private]
[frames] | no frames]

# Class IPAddress

    object --+
             |
        BaseIP --+
                 |
                IPAddress

An individual IPv4 or IPv6 address without a net mask or subnet prefix.

To support these and other network based operations, see IPNetwork.

Instance Methods | [hide private]
__init__(self, addr, version=None) Constructor. |
_get_value(self) |
_set_value(self, value) |
netmask_bits(self) Returns: If this IP is a valid netmask, the number of non-zero bits are returned, otherwise it returns the width in bits for the IP address version. |
is_hostmask(self) Returns: `True` if this IP address host mask, `False` otherwise. |
is_netmask(self) Returns: `True` if this IP address network mask, `False` otherwise. |
__iadd__(self, num) Increases the numerical value of this IPAddress by num. |
__isub__(self, num) Decreases the numerical value of this IPAddress by num. |
__add__(self, num) Add the numerical value of this IP address to num and provide the result as a new IPAddress object. |
__radd__(self, num) Add the numerical value of this IP address to num and provide the result as a new IPAddress object. |
__sub__(self, num) Subtract the numerical value of this IP address from num providing the result as a new IPAddress object. |
__rsub__(self, num) Subtract num (lvalue) from the numerical value of this IP address (rvalue) providing the result as a new IPAddress object. |
key(self) Returns: a key tuple that uniquely identifies this IP address. |
sort_key(self) Returns: A key tuple used to compare and sort this IPAddress correctly. |
__int__(self) Returns: the value of this IP address as an unsigned integer |
__long__(self) Returns: the value of this IP address as an unsigned integer |
__hex__(self) Returns: a hexadecimal string representation of this IP address. |
bits(self, word_sep=None) Returns: the value of this IP address as a binary digit string. |
ipv4(self) Returns: A numerically equivalent version 4 IPAddress object. |
ipv6(self, ipv4_compatible=False) Please Note: the IPv4-mapped IPv6 address format is now considered deprecated. |
format(self, dialect=None) Only relevant for IPv6 addresses. |
__or__(self, other) Returns: bitwise OR (x | y) between the integer value of this IP address and `other`. |
__and__(self, other) Returns: bitwise AND (x & y) between the integer value of this IP address and `other`. |
__xor__(self, other) Returns: bitwise exclusive OR (x ^ y) between the integer value of this IP address and `other`. |
__lshift__(self, numbits) Returns: an IPAddress object based on this one with its integer value left shifted by `numbits`. |
__rshift__(self, numbits) Returns: an IPAddress object based on this one with its integer value right shifted by `numbits`. |
__nonzero__(self) Returns: `True` if the numerical value of this IP address is not zero, `False` otherwise. |
__str__(self) Returns: IP address in representational format |
__repr__(self) Returns: Python statement to create an equivalent object |
Inherited from `object`: `__delattr__`, `__getattribute__`, `__new__`, `__reduce__`, `__reduce_ex__`, `__setattr__`
Inherited from BaseIP
__eq__(self, other) Returns: `True` if this IPAddress or IPNetwork object is equivalent to `other`, `False` otherwise. |
__ge__(self, other) Returns: `True` if this IPAddress or IPNetwork object is greater than or equal to `other`, `False` otherwise. |
__gt__(self, other) Returns: `True` if this IPAddress or IPNetwork object is greater than `other`, `False` otherwise. |
__hash__(self) Returns: A hash value uniquely indentifying this IP object. |
__le__(self, other) Returns: `True` if this IPAddress or IPNetwork object is less than or equal to `other`, `False` otherwise. |
__lt__(self, other) Returns: `True` if this IPAddress or IPNetwork object is less than `other`, `False` otherwise. |
__ne__(self, other) Returns: `True` if this IPAddress or IPNetwork object is not equivalent to `other`, `False` otherwise. |
is_ipv4_compat(self) Returns: `True` if this IP is IPv4-mapped IPv6 address, `False` otherwise. |
is_ipv4_mapped(self) Returns: `True` if this IP is IPv4-compatible IPv6 address, `False` otherwise. |
is_link_local(self) Returns: `True` if this IP is link-local address `False` otherwise. |
is_loopback(self) Returns: `True` if this IP is loopback address (not for network transmission), `False` otherwise. |
is_multicast(self) Returns: `True` if this IP is multicast, `False` otherwise |
is_private(self) Returns: `True` if this IP is for internal/private use only (i.e. |
is_reserved(self) Returns: `True` if this IP is in IANA reserved range, `False` otherwise. |
is_unicast(self) Returns: `True` if this IP is unicast, `False` otherwise |

Properties | [hide private]
| value a positive integer representing the value of this IP address.
| packed The value of this IP address as a packed binary string.
| words A list of unsigned integer words (octets for IPv4, hextets for IPv6) found in this IP address.
| bin The value of this IP adddress in standard Python binary representational form (0bxxx).
| reverse_dns The reverse DNS lookup record for this IP address
Inherited from `object`: `__class__`
Inherited from BaseIP
| info A record dict containing IANA registration details for this IP address if available, None otherwise.
| version the IP protocol version represented by this IP object.

Method Details | [hide private]

### __init__(self, addr, version=None) (Constructor) |
Constructor. Parameters: `addr` - an IPv4 or IPv6 address. May be an IP address in representation (string) format, an integer or another IPAddress object (copy construction). `version` - (optional) the explict IP address version. Mainly used to distinguish between IPv4 and IPv6 IPv4-compatible addresses specified as integers (which may be numerically equivalent). Overrides: object.__init__

### netmask_bits(self) |
Returns: If this IP is a valid netmask, the number of non-zero bits are returned, otherwise it returns the width in bits for the IP address version.

### is_hostmask(self) |
Returns: `True` if this IP address host mask, `False` otherwise.

### is_netmask(self) |
Returns: `True` if this IP address network mask, `False` otherwise.

### __iadd__(self, num) |
Increases the numerical value of this IPAddress by num. Parameters: `num` - size of IP address increment. An IndexError is raised if result exceeds maximum IP address value or is less than zero.

### __isub__(self, num) |
Decreases the numerical value of this IPAddress by num. Parameters: `num` - size of IP address decrement. An IndexError is raised if result is less than zero or exceeds maximum IP address value.

### __add__(self, num) (Addition operator) |
Add the numerical value of this IP address to num and provide the result as a new IPAddress object. Parameters: `num` - size of IP address increase. Returns: a new IPAddress object with its numerical value increased by num.

### __radd__(self, num) (Right-side addition operator) |
Add the numerical value of this IP address to num and provide the result as a new IPAddress object. Parameters: `num` - size of IP address increase. Returns: a new IPAddress object with its numerical value increased by num.

### __sub__(self, num) (Subtraction operator) |
Subtract the numerical value of this IP address from num providing the result as a new IPAddress object. Parameters: `num` - size of IP address decrease. Returns: a new IPAddress object with its numerical value decreased by num.

### __rsub__(self, num) |
Subtract num (lvalue) from the numerical value of this IP address (rvalue) providing the result as a new IPAddress object. Parameters: `num` - size of IP address decrease. Returns: a new IPAddress object with its numerical value decreased by num.

### key(self) |
Returns: a key tuple that uniquely identifies this IP address. Overrides: BaseIP.key

### sort_key(self) |
Returns: A key tuple used to compare and sort this IPAddress correctly. Overrides: BaseIP.sort_key

### __int__(self) |
Returns: the value of this IP address as an unsigned integer

### __long__(self) |
Returns: the value of this IP address as an unsigned integer

### __hex__(self) |
Returns: a hexadecimal string representation of this IP address.

### bits(self, word_sep=None) |
Parameters: `word_sep` - (optional) the separator to insert between words. Default: None - use default separator for address type. Returns: the value of this IP address as a binary digit string.

### ipv4(self) |
Returns: A numerically equivalent version 4 IPAddress object. Raises an AddrConversionError if IPv6 address cannot be converted to IPv4.

### ipv6(self, ipv4_compatible=False) |
Please Note: the IPv4-mapped IPv6 address format is now considered deprecated. See RFC 4291 or later for details. Parameters: `ipv4_compatible` - If `True` returns an IPv4-mapped address (::ffff:x.x.x.x), an IPv4-compatible (::x.x.x.x) address otherwise. Default: False (IPv4-mapped). Returns: A numerically equivalent version 6 IPAddress object.

### format(self, dialect=None) |
Only relevant for IPv6 addresses. Has no effect for IPv4. Parameters: `dialect` - An ipv6_* dialect class. Returns: an alternate string representation for this IP address.

### __or__(self, other) (Or operator) |
Parameters: `other` - An IPAddress object (or other int-like object). Returns: bitwise OR (x | y) between the integer value of this IP address and `other`.

### __and__(self, other) (And operator) |
Parameters: `other` - An IPAddress object (or other int-like object). Returns: bitwise AND (x & y) between the integer value of this IP address and `other`.

### __xor__(self, other) (Exclusive-Or operator) |
Parameters: `other` - An IPAddress object (or other int-like object). Returns: bitwise exclusive OR (x ^ y) between the integer value of this IP address and `other`.

### __lshift__(self, numbits) |
Parameters: `numbits` - size of bitwise shift. Returns: an IPAddress object based on this one with its integer value left shifted by `numbits`.

### __rshift__(self, numbits) |
Parameters: `numbits` - size of bitwise shift. Returns: an IPAddress object based on this one with its integer value right shifted by `numbits`.

### __nonzero__(self) (Boolean test operator) |
Returns: `True` if the numerical value of this IP address is not zero, `False` otherwise.

### __str__(self) (Informal representation operator) |
str(x) Returns: IP address in representational format Overrides: object.__str__

### __repr__(self) (Representation operator) |
repr(x) Returns: Python statement to create an equivalent object Overrides: object.__repr__

Property Details | [hide private]

### value a positive integer representing the value of this IP address. Get Method: _get_value(self) Set Method: _set_value(self, value)

### packed The value of this IP address as a packed binary string. Get Method: unreachable.packed(self) - The value of this IP address as a packed binary string.

### words A list of unsigned integer words (octets for IPv4, hextets for IPv6) found in this IP address. Get Method: unreachable.words(self) - A list of unsigned integer words (octets for IPv4, hextets for IPv6) found in this IP address.

### bin The value of this IP adddress in standard Python binary representational form (0bxxx). A back port of the format provided by the builtin bin() function found in Python 2.6.x and higher. Get Method: unreachable.bin(self) - The value of this IP adddress in standard Python binary representational form (0bxxx).

### reverse_dns The reverse DNS lookup record for this IP address Get Method: unreachable.reverse_dns(self) - The reverse DNS lookup record for this IP address