libnpupnp: NetIF::IPAddr Class Reference

libnpupnp 4.1.0 An almost compatible successor for the Portable UPnP reference library

Public Types | Public Member Functions | Friends | List of all members
NetIF::IPAddr Class Reference

Represent an IPV4 or IPV6 address. More...

`#include <netif.h>`

## Public Types
enum | Family { Invalid = -1, IPV4 = AF_INET, IPV6 = AF_INET6 }
| address family types. The values are identifal to the system's definitions
enum | Scope { Invalid = -1, LINK, SITE, GLOBAL }
| IPV6 address scope type.

## Public Member Functions
| IPAddr (const char *)
| Build from textual representation (e.g. 192.168.4.4)
| IPAddr (const std::string &s)
| Build from textual representation (e.g. 192.168.4.4)
| IPAddr (const struct sockaddr *sa, bool unmapv4=true)
| Build from binary address in network byte order. More...
| IPAddr (const IPAddr &)
IPAddr & | operator= (const IPAddr &)
bool | ok () const
| Check constructor success.
bool | setScopeIdx (const IPAddr &other)
Family | family () const
| Returns the address family.
Scope | scopetype () const
| Returns the scope type of IPV6 address.
bool | copyToStorage (struct sockaddr_storage *dest) const
| Copies out for use with a system interface Zeroes out up to sizeof(sockaddr_storage)
bool | copyToAddr (struct sockaddr *dest) const
| Copies out for use with a system interface Copies exactly the needed size.
const struct sockaddr_storage & | getaddr () const
| Get reference to the internal binary address.
std::string | straddr () const
| Convert to textual representation.
std::string | straddr (bool setscope, bool forurl) const
| Convert to textual representation. Possibly add scope id, possibly url-encode it.

## Friends
class | Interface

## Detailed Description

Represent an IPV4 or IPV6 address.

## Constructor & Destructor Documentation

## ◆ IPAddr()

NetIF::IPAddr::IPAddr | ( | const struct sockaddr * | sa,
|  | bool | unmapv4 = `true`
| ) |  |
| explicit

Build from binary address in network byte order.

Parameters

  unmapv4 | if true we test for a v6 mapped v4 address and, if found, store it as v4

## Member Function Documentation

## ◆ setScopeIdx()

bool NetIF::IPAddr::setScopeIdx | ( | const IPAddr & | other | ) |

Set the scopeidx from other address. Only does anything for ipv6 link-local addresses

The documentation for this class was generated from the following file:

- /home/dockes/projets/mpdupnp/npupnp/src/inc/netif.h