Package netaddr :: Module address :: Class Addr |
[hide private]
[frames] | no frames]

# Class Addr

source code

    object --+
             |
            Addr

Known Subclasses:
  - IP
  - , EUI

The base class containing common functionality for all subclasses representing various network address types.

It is a fully functioning class (as opposed to a virtual class) with a heuristic constructor that detects the type of address via the first argument if it is a string and sets itself up accordingly. If the first argument is an integer, then a constant must be provided via the second argument indicating the address type explicitly.

Objects of this class behave differently dependent upon the type of address they represent.

Instance Methods | [hide private]
__init__(self, addr, addr_type=0) Constructor. | source code
__hash__(self) Returns: hash of this address suitable for dict keys, sets etc | source code
__int__(self) Returns: value of this address as an unsigned integer | source code
__long__(self) Returns: value of this address as an unsigned integer | source code
__str__(self) Returns: common string representation of this address | source code
__repr__(self) Returns: executable Python string to recreate equivalent object | source code
bits(self, word_sep=None) Returns: human-readable binary digit string of this address | source code
packed(self) Returns: binary packed string of this address | source code
bin(self) Returns: standard Python binary representation of this address. | source code
__len__(self) Returns: The size (width) of this address in bits | source code
__iter__(self) Returns: An iterator over individual words in this address | source code
__getitem__(self, index) Returns: The integer value of the word referenced by index (both positive and negative). | source code
__setitem__(self, index, value) Sets the value of the word referenced by index in this address | source code
__hex__(self) Returns: hexadecimal string representation of this address (in network byte order). | source code
__iadd__(self, num) Increment value of network address by specified amount. | source code
__isub__(self, num) Decrement value of network address by specified amount. | source code
__add__(self, other) Returns: A new (potentially larger) Addr class/subclass instance. | source code
__sub__(self, other) Returns: A new (potentially smaller) Addr class/subclass instance. | source code
__eq__(self, other) Returns: `True` if this address is numerically the same as other, `False` otherwise. | source code
__ne__(self, other) Returns: `False` if this address is numerically the same as the other, `True` otherwise. | source code
__lt__(self, other) Returns: `True` if this address is numerically lower in value than other, `False` otherwise. | source code
__le__(self, other) Returns: `True` if this address is numerically lower or equal in value to other, `False` otherwise. | source code
__gt__(self, other) Returns: `True` if this address is numerically greater in value than other, `False` otherwise. | source code
__ge__(self, other) Returns: `True` if this address is numerically greater or equal in value to other, `False` otherwise. | source code
__or__(self, other) Returns: bitwise OR (x | y) between the integer value of this IP address and another. | source code
__and__(self, other) Returns: bitwise AND (x & y) between the integer value of this address and another. | source code
__xor__(self, other) Returns: bitwise exclusive OR (x ^ y) between the integer value of this address and another. | source code
__lshift__(self, numbits) Returns: an address based on this one with its integer value left shifted by x bits. | source code
__rshift__(self, numbits) Returns: an address based on this one with its integer value right shifted by x bits. | source code
__nonzero__(self) Returns: True if the numerical value of this address is not zero, False otherwise. | source code
Inherited from `object`: `__delattr__`, `__getattribute__`, `__new__`, `__reduce__`, `__reduce_ex__`, `__setattr__`

Class Variables | [hide private]
| STRATEGIES = ``(`IPv4Strategy(32, 8, '.', 4, 10)`,` IPv6Strategy(12`...``
| ADDR_TYPES = ``(`0`,` 4`,` 6`,` 48`,` 64`)``
| value = `AddrValueDescriptor('value')`
| strategy = `StrategyDescriptor(STRATEGIES)`
| addr_type = `AddrTypeDescriptor(ADDR_TYPES)`

Properties | [hide private]
Inherited from `object`: `__class__`

Method Details | [hide private]

### __init__(self, addr, addr_type=0) (Constructor) | source code
Constructor. Parameters: `addr` - the string form of a network address, or a network byte order integer within the supported range for the address type. `addr_type` - (optional) the network address type. If addr is an integer, this argument becomes mandatory. Overrides: object.__init__

### __hash__(self) (Hashing function) | source code
hash(x) Returns: hash of this address suitable for dict keys, sets etc Overrides: object.__hash__

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

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

### __str__(self) (Informal representation operator) | source code
str(x) Returns: common string representation of this address Overrides: object.__str__

### __repr__(self) (Representation operator) | source code
repr(x) Returns: executable Python string to recreate equivalent object Overrides: object.__repr__

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

### packed(self) | source code
Returns: binary packed string of this address

### bin(self) | source code
Returns: standard Python binary representation of this address. A back port of the format provided by the builtin bin() type available in Python 2.6.x and higher.

### __len__(self) (Length operator) | source code
Returns: The size (width) of this address in bits

### __iter__(self) | source code
Returns: An iterator over individual words in this address

### __getitem__(self, index) (Indexing operator) | source code
Returns: The integer value of the word referenced by index (both positive and negative). Raises `IndexError` if index is out of bounds. Also supports Python list slices for accessing word groups.

### __hex__(self) | source code
Returns: hexadecimal string representation of this address (in network byte order).

### __iadd__(self, num) | source code
Increment value of network address by specified amount. Behaves like an unsigned integer, rolling over to zero when it reaches the maximum value threshold. Parameters: `num` - size of increment

### __isub__(self, num) | source code
Decrement value of network address by specified amount. Behaves like an unsigned integer, rolling over to maximum value when it goes below zero. Parameters: `num` - size of decrement

### __add__(self, other) (Addition operator) | source code
Parameters: `other` - an integer or int-like object. Returns: A new (potentially larger) Addr class/subclass instance.

### __sub__(self, other) (Subtraction operator) | source code
Parameters: `other` - an integer or int-like object. Returns: A new (potentially smaller) Addr class/subclass instance.

### __eq__(self, other) (Equality operator) | source code
Returns: `True` if this address is numerically the same as other, `False` otherwise.

### __ne__(self, other) | source code
Returns: `False` if this address is numerically the same as the other, `True` otherwise.

### __lt__(self, other) (Less-than operator) | source code
Returns: `True` if this address is numerically lower in value than other, `False` otherwise.

### __le__(self, other) (Less-than-or-equals operator) | source code
Returns: `True` if this address is numerically lower or equal in value to other, `False` otherwise.

### __gt__(self, other) (Greater-than operator) | source code
Returns: `True` if this address is numerically greater in value than other, `False` otherwise.

### __ge__(self, other) (Greater-than-or-equals operator) | source code
Returns: `True` if this address is numerically greater or equal in value to other, `False` otherwise.

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

### __and__(self, other) (And operator) | source code
Parameters: `other` - An Addr (sub)class instance (or int-like object). Returns: bitwise AND (x & y) between the integer value of this address and another.

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

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

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

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

Class Variable Details | [hide private]

  ### STRATEGIES Value:
      (IPv4Strategy(32, 8, '.', 4, 10),
       IPv6Strategy(128, 16, ':', 6, 16),
       EUI48Strategy(48, 8, '-', 48, 16),
       AddrStrategy(64, 8, '-', 64, 16))