| 
 
 | 
 | 
The IPv4 address class is a trivial class for handling IPv4 addresses and for performing operations on them such as printing and masking.
| IPv4 () | IPv4 | 
Default constrictor
The address value is initialized to INADDR_ANY.
| IPv4 (const IPv4& ipv4) | IPv4 | 
Constructor from another IPv4 address.
Parameters:
| ipv4 | the IPv4 address to assign the address value from. | 
| explicit  IPv4 (uint32_t value) | IPv4 | 
Constructor from an integer value.
Parameters:
| value | 32-bit unsigned integer to assign to the address. | 
| explicit  IPv4 (const uint8_t *from_uint8) | IPv4 | 
Constructor from a (uint8_t *) memory pointer.
Parameters:
| from_uint8 | the pointer to the memory to copy the address value from. | 
| IPv4 (const in_addr& from_in_addr) | IPv4 | 
Constructor from in_addr structure.
Parameters:
| from_in_addr | the storage to copy the address value from. | 
| IPv4 (const sockaddr& sa) throw (InvalidFamily) | IPv4 | 
Constructor from sockaddr structure.
Parameters:
| sa | sockaddr to construct IPv4 addr from. | 
| IPv4 (const sockaddr_in& sin) throw (InvalidFamily) | IPv4 | 
Constructor from sockaddr_in structure.
Parameters:
| sin | sockaddr_in to construct IPv4 addr from. | 
| IPv4 (const char *from_string) throw (InvalidString) | IPv4 | 
Constructor from a string.
Parameters:
| from_cstring | C-style string in the IPv4 dotted decimal human-readable format used for initialization. | 
| size_t  copy_out (uint8_t *to_uint8) | copy_out | 
[const]
Copy the IPv4 raw address to specified memory location.
@param: to_uint8 the pointer to the memory to copy the address to.
Returns: the number of copied octets.
| size_t  copy_out (in_addr& to_in_addr) | copy_out | 
[const]
Copy the IP4 raw address to an in_addr structure.
Parameters:
| to_in_addr | the storage to copy the address to. | 
Returns: the number of copied octets.
| size_t  copy_out (sockaddr& to_sockaddr) | copy_out | 
[const]
Copy the IPv4 raw address to a sockaddr structure.
Copy the raw address held within an IPv4 instance to an sockaddr structure and assign appropriately and set fields within sockaddr appropriately.
Parameters:
| to_sockaddr | the storage to copy the address to. | 
Returns: the number of copied octets.
| size_t  copy_out (sockaddr_in& to_sockaddr_in) | copy_out | 
[const]
Copy the IPv4 raw address to a sockaddr_in structure.
Copy the raw address held within an IPv4 instance to an sockaddr_in structure and assign appropriately and set fields within sockaddr_in appropriately.
Parameters:
| to_sockaddr_in | the storage to copy the address to. | 
Returns: the number of copied octets.
| size_t  copy_in (const uint8_t *from_uint8) | copy_in | 
Copy a raw IPv4 address from specified memory location into IPv4 structure.
Parameters:
| from_uint8 | the memory address to copy the address from. | 
Returns: the number of copied octets.
| size_t  copy_in (const in_addr& from_in_addr) | copy_in | 
Copy a raw IPv4 address from a in_addr structure into IPv4 structure.
Parameters:
| from_in_addr | the storage to copy the address from. | 
Returns: the number of copied octets.
| size_t  copy_in (const sockaddr& from_sockaddr) throw (InvalidFamily) | copy_in | 
Copy a raw address from a sockaddr structure into IPv4 structure.
Note that the address in the sockaddr structure must be of IPv4 address family.
Parameters:
| from_sockaddr | the storage to copy the address from. | 
Returns: the number of copied octets.
| size_t  copy_in (const sockaddr_in& from_sockaddr_in) throw (InvalidFamily) | copy_in | 
Copy a raw address from a sockaddr_in structure into IPv4 structure.
Note that the address in the sockaddr structure must be of IPv4 address family.
Parameters:
| from_sockaddr_in | the storage to copy the address from. | 
Returns: the number of copied octets.
| inline IPv4  operator~ () | operator~ | 
[const]
Bitwise-Negation Operator
Returns: address complement (i.e., all 0s become 1s, and vice-versa).
| inline IPv4  operator| (const IPv4& other) | operator| | 
[const]
OR Operator
Parameters:
| other | the right-hand operand to OR with. | 
Returns: bitwise OR of two addresses.
| inline IPv4  operator& (const IPv4& other) | operator& | 
[const]
AND Operator
Parameters:
| other | the right-hand operand to AND with. | 
Returns: bitwise AND of two addresses.
| inline IPv4  operator^ (const IPv4& other) | operator^ | 
[const]
XOR Operator
Returns: eXclusive-OR of two addresses.
| IPv4  operator<< (size_t left_shift) | operator<< | 
[const]
Operator <<
Parameters:
| left_shift | the number of bits to shift to the left. | 
Returns: IPv4 address that is shift bitwise to the left.
| IPv4  operator>> (size_t right_shift) | operator>> | 
[const]
Operator >>
Parameters:
| right_shift | the number of bits to shift to the right. | 
Returns: IPv4 address that is shift bitwise to the right.
| bool  operator< (const IPv4& other) | operator< | 
[const]
Less-Than Operator
Parameters:
| other | the right-hand operand to compare against. | 
Returns: true if the left-hand operand is numerically smaller than the right-hand operand.
| bool  operator== (const IPv4& other) | operator== | 
[const]
Equality Operator
Parameters:
| other | the right-hand operand to compare against. | 
Returns: true if the left-hand operand is numerically same as the right-hand operand.
| bool  operator!= (const IPv4& other) | operator!= | 
[const]
Not-Equal Operator
Parameters:
| other | the right-hand operand to compare against. | 
Returns: true if the left-hand operand is numerically not same as the right-hand operand.
| IPv4&  operator-- () | operator-- | 
Decrement Operator
The numerical value of this address is decremented by one. However, if the address value before the decrement was all-0s, after the decrement its value would be all-1s (i.e., it will wrap-around).
Returns: a reference to this address after it was decremented by one.
| IPv4&  operator++ () | operator++ | 
Increment Operator
The numerical value of this address is incremented by one. However, if the address value before the increment was all-1s, after the increment its value would be all-0s (i.e., it will wrap-around).
Returns: a reference to this address after it was incremented by one.
| string  str () | str | 
[const]
Convert this address from binary form to presentation format.
Returns: C++ string with the human-readable ASCII representation of the address.
| bool  is_zero () | is_zero | 
[const]
Test if this address is numerically zero.
Returns: true if the address is numerically zero.
| bool  is_unicast () | is_unicast | 
[const]
Test if this address is a valid unicast address.
Returns: true if the address is a valid unicast address.
| bool  is_multicast () | is_multicast | 
[const]
Test if this address is a valid multicast address.
Returns: true if the address is a valid multicast address.
| bool  is_nodelocal_multicast () | is_nodelocal_multicast | 
[const]
Test if this address is a valid node-local multicast address.
Returns: true if the address is a valid multicast address, and the scope of the address is node-local. XXX: in IPv4 there is no node-local multicast scope, therefore the return value is always false.
| bool  is_linklocal_multicast () | is_linklocal_multicast | 
[const]
Test if this address is a valid link-local multicast address.
Returns: true if the address is a valid multicast address, and the scope of the address is link-local.
| inline  size_t  addr_size () | addr_size | 
[static]
Get the address octet-size.
Note that this is a static function and can be used without a particular object. Example: size_t my_size = IPv4::addr_size(); OK size_t my_size = ipv4.addr_size(); OK
Returns: address size in number of octets.
| inline  size_t  addr_bitlen () | addr_bitlen | 
[static]
Get the address bit-length.
Note that this is a static function and can be used without a particular object. Example: size_t my_bitlen = IPv4::addr_bitlen(); OK size_t my_bitlen = ipv4.addr_bitlen(); OK
Returns: address size in number of bits.
| size_t  ip_multicast_base_address_masklen () | ip_multicast_base_address_masklen | 
[static]
Get the masklen for the multicast base address.
Note that this is a static function and can be used without a particular object. Example: size_t my_len = IPv4::ip_multicast_base_address_masklen(); OK size_t my_len = ipv4.ip_multicast_base_address_masklen(); OK
Returns: the multicast base address masklen for family AF_INET.
| IPv4  make_prefix (size_t masklen) throw (InvalidNetmaskLength) | make_prefix | 
[static]
Make an IPv4 mask prefix.
Parameters:
| masklen | the length of the mask to create. | 
Returns: a new IPv4 address that contains a mask of length masklen.
| inline IPv4  mask_by_prefix (size_t masklen) throw (InvalidNetmaskLength) | mask_by_prefix | 
[const]
Make an IPv4 address prefix.
Parameters:
| masklen | the length of the mask of the prefix to create. | 
Returns: a new IPv4 address created by masking this address with a mask of length masklen.
| size_t  prefix_length () | prefix_length | 
[const]
Get the mask length.
Returns: the prefix length of the contiguous mask presumably stored as an IPv4 address.
| uint32_t  addr () | addr | 
[const]
Get the uint32_t raw value of this address.
Returns: the value of this IPv4 address as an unsigned 32-bit integer.
| void  set_addr (uint32_t value) | set_addr | 
Set the address value.
Parameters:
| value | unsigned 32-bit integer value to set the address to. | 
| enum { AF = AF_INET } | 
Constant for address family
| enum { IPV = 4 } | 
Constant for IP protocol version
| inline  const int  af () | af | 
[static]
Get the address family.
Returns: the address family of this address.
| inline  const uint32_t  ip_version () | ip_version | 
[static]
Get the IP protocol version.
Returns: the IP protocol version of this address.
| inline uint32_t  bits (size_t lsb, size_t len) | bits | 
[const]
Extract bits from an address.
Parameters:
| lsb | starting bit position (from the right) to extract. | 
| len | number of bits to extract. The maximum value is 32. | 
Returns: the first len bits starting from the rightmost position lsb. The returned bits are in host order.
| inline  IPv4  ZERO (int af = AF_INET) | ZERO | 
[static]
Pre-defined IPv4 address constants.
| inline  IPv4  ANY (int af = AF_INET) | ANY | 
[static]
| inline  IPv4  ALL_ONES (int af = AF_INET) | ALL_ONES | 
[static]
| inline  IPv4  MULTICAST_BASE (int af = AF_INET) | MULTICAST_BASE | 
[static]
| inline  IPv4  MULTICAST_ALL_SYSTEMS (int af = AF_INET) | MULTICAST_ALL_SYSTEMS | 
[static]
| inline  IPv4  MULTICAST_ALL_ROUTERS (int af = AF_INET) | MULTICAST_ALL_ROUTERS | 
[static]
| inline  IPv4  DVMRP_ROUTERS (int af = AF_INET) | DVMRP_ROUTERS | 
[static]
| inline  IPv4  OSPFIGP_ROUTERS (int af = AF_INET) | OSPFIGP_ROUTERS | 
[static]
| inline  IPv4  OSPFIGP_DESIGNATED_ROUTERS (int af = AF_INET) | OSPFIGP_DESIGNATED_ROUTERS | 
[static]
| inline  IPv4  RIP2_ROUTERS (int af = AF_INET) | RIP2_ROUTERS | 
[static]
| inline  IPv4  PIM_ROUTERS (int af = AF_INET) | PIM_ROUTERS | 
[static]
| Generated by: pavlin on possum.icir.org on Mon Jun 9 13:23:43 2003, using kdoc 2.0a54+XORP. |