Public Types |
| enum | { AF = AF_INET
} |
| | Constant for address family.
|
| enum | { IPV = 4
} |
| | Constant for IP protocol version.
|
|
typedef in_addr | InAddrType |
|
typedef sockaddr_in | SockAddrType |
Public Member Functions |
| | IPv4 () |
| | Default constructor.
|
| | IPv4 (const IPv4 &ipv4) |
| | Constructor from another IPv4 address.
|
| | IPv4 (uint32_t value) |
| | Constructor from an integer value.
|
| | IPv4 (const uint8_t *from_uint8) |
| | Constructor from a (uint8_t *) memory pointer.
|
| | IPv4 (const in_addr &from_in_addr) |
| | Constructor from in_addr structure.
|
| | IPv4 (const sockaddr &sa) throw (InvalidFamily) |
| | Constructor from sockaddr structure.
|
| | IPv4 (const sockaddr_storage &ss) throw (InvalidFamily) |
| | Constructor from sockaddr_storage structure.
|
| | IPv4 (const sockaddr_in &sin) throw (InvalidFamily) |
| | Constructor from sockaddr_in structure.
|
| | IPv4 (const char *from_string) throw (InvalidString) |
| | Constructor from a string.
|
| size_t | copy_out (uint8_t *to_uint8) const |
| | Copy the IPv4 raw address to specified memory location.
|
| size_t | copy_out (in_addr &to_in_addr) const |
| | Copy the IP4 raw address to an in_addr structure.
|
| size_t | copy_out (sockaddr &to_sockaddr) const |
| | Copy the IPv4 raw address to a sockaddr structure.
|
| size_t | copy_out (sockaddr_storage &to_sockaddr_storage) const |
| | Copy the IPv4 raw address to a sockaddr_storage structure.
|
| size_t | copy_out (sockaddr_in &to_sockaddr_in) const |
| | Copy the IPv4 raw address to a sockaddr_in structure.
|
| size_t | copy_in (const uint8_t *from_uint8) |
| | Copy a raw IPv4 address from specified memory location into IPv4 structure.
|
| size_t | copy_in (const in_addr &from_in_addr) |
| | Copy a raw IPv4 address from a in_addr structure into IPv4 structure.
|
| size_t | copy_in (const sockaddr &from_sockaddr) throw (InvalidFamily) |
| | Copy a raw address from a sockaddr structure into IPv4 structure.
|
| size_t | copy_in (const sockaddr_storage &from_sockaddr_storage) throw (InvalidFamily) |
| | Copy a raw address from a sockaddr_storage structure into IPv4 structure.
|
| size_t | copy_in (const sockaddr_in &from_sockaddr_in) throw (InvalidFamily) |
| | Copy a raw address from a sockaddr_in structure into IPv4 structure.
|
| IPv4 | operator~ () const |
| | Bitwise-Negation Operator.
|
| IPv4 | operator| (const IPv4 &other) const |
| | OR Operator.
|
| IPv4 | operator& (const IPv4 &other) const |
| | AND Operator.
|
| IPv4 | operator^ (const IPv4 &other) const |
| | XOR Operator.
|
| IPv4 | operator<< (uint32_t left_shift) const |
| | Operator <<.
|
| IPv4 | operator>> (uint32_t right_shift) const |
| | Operator >>
|
| bool | operator< (const IPv4 &other) const |
| | Less-Than Operator.
|
| bool | operator== (const IPv4 &other) const |
| | Equality Operator.
|
| bool | operator!= (const IPv4 &other) const |
| | Not-Equal Operator.
|
| bool | operator== (const IPv4Range &rhs) const |
| | Equality Operator for IPv4 against IPv4Range operand.
|
| bool | operator!= (const IPv4Range &rhs) const |
| | Not-equal Operator for IPv4 against IPv4Range operand.
|
| bool | operator< (const IPv4Range &rhs) const |
| | Less-than comparison for IPv4 against IPv4Range operand.
|
| bool | operator<= (const IPv4Range &rhs) const |
| | Less-than or equal comparison for IPv4 against IPv4Range.
|
| bool | operator> (const IPv4Range &rhs) const |
| | Greater-than comparison for IPv4 against IPv4Range operand.
|
| bool | operator>= (const IPv4Range &rhs) const |
| | Greater-than or equal comparison for IPv4 against IPv4Range.
|
| IPv4 & | operator-- () |
| | Decrement Operator.
|
| IPv4 & | operator++ () |
| | Increment Operator.
|
| string | str () const |
| | Convert this address from binary form to presentation format.
|
| bool | is_zero () const |
| | Test if this address is numerically zero.
|
| bool | is_unicast () const |
| | Test if this address is a valid unicast address.
|
| bool | is_multicast () const |
| | Test if this address is a valid multicast address.
|
| bool | is_class_a () const |
| | Test if this address belongs to the IPv4 Class A address space (0.0.0.0/1).
|
| bool | is_class_b () const |
| | Test if this address belongs to the IPv4 Class B address space (128.0.0.0/2).
|
| bool | is_class_c () const |
| | Test if this address belongs to the IPv4 Class C address space (192.0.0.0/3).
|
| bool | is_experimental () const |
| | Test if this address belongs to the IPv4 experimental Class E address space (240.0.0.0/4).
|
| bool | is_linklocal_unicast () const |
| | Test if this address is a valid link-local unicast address.
|
| bool | is_interfacelocal_multicast () const |
| | Test if this address is a valid interface-local multicast address.
|
| bool | is_nodelocal_multicast () const |
| | Test if this address is a valid node-local multicast address.
|
| bool | is_linklocal_multicast () const |
| | Test if this address is a valid link-local multicast address.
|
| bool | is_loopback () const |
| | Test if this address is a valid loopback address.
|
| IPv4 | mask_by_prefix_len (uint32_t mask_len) const throw (InvalidNetmaskLength) |
| | Make an IPv4 address prefix.
|
| uint32_t | mask_len () const |
| | Get the mask length.
|
| uint32_t | addr () const |
| | Get the uint32_t raw value of this address.
|
| void | set_addr (uint32_t value) |
| | Set the address value.
|
| uint32_t | bits (uint32_t lsb, uint32_t len) const |
| | Extract bits from an address.
|
| uint32_t | bit_count () const |
| | Count the number of bits that are set in this address.
|
| uint32_t | leading_zero_count () const |
| | Count the number of leading zeroes in this address.
|
Static Public Member Functions |
| static size_t | addr_bytelen () |
| | Get the address octet-size.
|
| static uint32_t | addr_bitlen () |
| | Get the address bit-length.
|
| static uint32_t | ip_multicast_base_address_mask_len () |
| | Get the mask length for the multicast base address.
|
| static uint32_t | ip_class_a_base_address_mask_len () |
| | Get the mask length for the Class A base address.
|
| static uint32_t | ip_class_b_base_address_mask_len () |
| | Get the mask length for the Class B base address.
|
| static uint32_t | ip_class_c_base_address_mask_len () |
| | Get the mask length for the Class C base address.
|
| static uint32_t | ip_experimental_base_address_mask_len () |
| | Get the mask length for the experimental base address.
|
| static IPv4 | make_prefix (uint32_t mask_len) throw (InvalidNetmaskLength) |
| | Make an IPv4 mask prefix.
|
| static int | af () |
| | Get the address family.
|
| static uint32_t | ip_version () |
| | Get the IP protocol version.
|
| static const string & | ip_version_str () |
| | Get the human-readable string with the IP protocol version.
|
|
static const IPv4 & | ZERO (int af=AF_INET) |
| | Pre-defined IPv4 address constants.
|
|
static const IPv4 & | ANY (int af=AF_INET) |
|
static const IPv4 & | ALL_ONES (int af=AF_INET) |
|
static const IPv4 & | LOOPBACK (int af=AF_INET) |
|
static const IPv4 & | MULTICAST_BASE (int af=AF_INET) |
|
static const IPv4 & | MULTICAST_ALL_SYSTEMS (int af=AF_INET) |
|
static const IPv4 & | MULTICAST_ALL_ROUTERS (int af=AF_INET) |
|
static const IPv4 & | DVMRP_ROUTERS (int af=AF_INET) |
|
static const IPv4 & | OSPFIGP_ROUTERS (int af=AF_INET) |
|
static const IPv4 & | OSPFIGP_DESIGNATED_ROUTERS (int af=AF_INET) |
|
static const IPv4 & | RIP2_ROUTERS (int af=AF_INET) |
|
static const IPv4 & | PIM_ROUTERS (int af=AF_INET) |
|
static const IPv4 & | SSM_ROUTERS (int af=AF_INET) |
|
static const IPv4 & | CLASS_A_BASE (int af=AF_INET) |
|
static const IPv4 & | CLASS_B_BASE (int af=AF_INET) |
|
static const IPv4 & | CLASS_C_BASE (int af=AF_INET) |
|
static const IPv4 & | EXPERIMENTAL_BASE (int af=AF_INET) |
Static Public Attributes |
|
static const uint32_t | ADDR_BITLEN = 32 |
| | Number of bits in address as a constant.
|
|
static const uint32_t | ADDR_BYTELEN = ADDR_BITLEN / 8 |
| | Number of bytes in address as a constant.
|
Private Attributes |
|
uint32_t | _addr |
IPv4 address class.
The IPv4 address class is a trivial class for handling IPv4 addresses and for performing operations on them such as printing and masking.