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 &)
 
IPAddroperator= (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
unmapv4if 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: