#include <icy/net/address.h>Represents an IPv4 or IPv6 socket address with host and port.
| Return | Name | Description |
|---|---|---|
Address | Creates a wildcard (all zero) IPv4 Address. | |
Address | Creates an Address from an IP address and a port number. | |
Address | Creates an Address by copying another one. | |
Address | Creates an Address from a native socket address. | |
Address | Creates an Address from an IP address and a service name or port number. | |
Address explicit | Creates an Address from an IP address or host name and a port number/service name. Host name/address and port number must be separated by a colon. In case of an IPv6 address, the address part must be enclosed in brackets. | |
~Address | Destroys the Address. | |
Address & | operator= | Assigns another Address. |
void | swap | Swaps the Address with another one. |
std::string | host const | Returns the host IP address. |
uint16_t | port const | Returns the port number. |
socklen_t | length const | Returns the length of the internal native socket address. |
const struct sockaddr * | addr const | Returns a pointer to the internal native socket address. |
int | af const | Returns the address family (AF_INET or AF_INET6) of the address. |
std::string | toString const | Returns a string representation of the address. |
Address::Family | family const | Returns the address family of the host's address. |
bool | valid const | Returns true when the port is set and the address is valid ie. not wildcard. |
bool | operator< const | Compares two addresses for ordering (by family then port). |
bool | operator== const | Returns true if the host and port of both addresses are equal. |
bool | operator!= const | Returns true if the host or port of the addresses differ. |
Address()Creates a wildcard (all zero) IPv4 Address.
Address(const std::string & host, uint16_t port)Creates an Address from an IP address and a port number.
The IP address must either be a domain name, or it must be in dotted decimal (IPv4) or hex string (IPv6) format.
Address(const Address & addr)Creates an Address by copying another one.
Address(const struct sockaddr * addr, socklen_t length)Creates an Address from a native socket address.
Address(const std::string & host, const std::string & port)Creates an Address from an IP address and a service name or port number.
The IP address must either be a domain name, or it must be in dotted decimal (IPv4) or hex string (IPv6) format.
The given port must either be a decimal port number, or a service name.
explicit
explicit Address(const std::string & hostAndPort)Creates an Address from an IP address or host name and a port number/service name. Host name/address and port number must be separated by a colon. In case of an IPv6 address, the address part must be enclosed in brackets.
Examples: 192.168.1.10:80
~Address() noexceptDestroys the Address.
Address & operator=(const Address & addr)Assigns another Address.
void swap(Address & addr)Swaps the Address with another one.
const
std::string host() constReturns the host IP address.
const
uint16_t port() constReturns the port number.
const
socklen_t length() constReturns the length of the internal native socket address.
const
const struct sockaddr * addr() constReturns a pointer to the internal native socket address.
const
int af() constReturns the address family (AF_INET or AF_INET6) of the address.
const
std::string toString() constReturns a string representation of the address.
const
Address::Family family() constReturns the address family of the host's address.
const
bool valid() constReturns true when the port is set and the address is valid ie. not wildcard.
const
bool operator<(const Address & addr) constCompares two addresses for ordering (by family then port).
addr The address to compare against.true if this address is less than addr.
const
bool operator==(const Address & addr) constReturns true if the host and port of both addresses are equal.
addr The address to compare against.const
bool operator!=(const Address & addr) constReturns true if the host or port of the addresses differ.
addr The address to compare against.| Return | Name | Description |
|---|---|---|
uint16_t | resolveService static | Resolves a service name or decimal port string to a port number. |
bool | validateIP static | Returns true if the given string is a valid IPv4 or IPv6 address. |
static
static uint16_t resolveService(const std::string & service)Resolves a service name or decimal port string to a port number.
service Service name (e.g. "http") or decimal port string (e.g. "80").The resolved port number in host byte order.
static
static bool validateIP(std::string_view address)Returns true if the given string is a valid IPv4 or IPv6 address.
address The string to validate.true if the address parses as a valid IP address, false otherwise.
| Return | Name | Description |
|---|---|---|
void | init |
void init(const std::string & host, uint16_t port)| Name | Description |
|---|---|
Family | Possible address families for IP addresses. |
enum FamilyPossible address families for IP addresses.
| Value | Description |
|---|---|
IPv4 | |
IPv6 |
| Return | Name | Description |
|---|---|---|
std::shared_ptr< AddressBase > | _base |
std::shared_ptr< AddressBase > _base