PRCYCoin  2.0.0.7rc1
P2P Digital Currency
Public Member Functions | Public Attributes | Protected Attributes | Friends | List of all members
CNetAddr Class Reference

IP address (IPv6, or IPv4 using mapped IPv6 range (::FFFF:0:0/96)) More...

#include <netaddress.h>

Inheritance diagram for CNetAddr:
[legend]

Public Member Functions

 CNetAddr ()
 
 CNetAddr (const struct in_addr &ipv4Addr)
 
void Init ()
 
void SetIP (const CNetAddr &ip)
 
void SetRaw (Network network, const uint8_t *data)
 Set raw IPv4 or IPv6 address (in network byte order) More...
 
bool SetSpecial (const std::string &strName)
 
bool IsIPv4 () const
 
bool IsIPv6 () const
 
bool IsRFC1918 () const
 
bool IsRFC2544 () const
 
bool IsRFC6598 () const
 
bool IsRFC5737 () const
 
bool IsRFC3849 () const
 
bool IsRFC3927 () const
 
bool IsRFC3964 () const
 
bool IsRFC4193 () const
 
bool IsRFC4380 () const
 
bool IsRFC4843 () const
 
bool IsRFC4862 () const
 
bool IsRFC6052 () const
 
bool IsRFC6145 () const
 
bool IsTor () const
 
bool IsLocal () const
 
bool IsRoutable () const
 
bool IsValid () const
 
bool IsMulticast () const
 
enum Network GetNetwork () const
 
std::string ToString () const
 
std::string ToStringIP () const
 
unsigned int GetByte (int n) const
 
uint64_t GetHash () const
 
bool GetInAddr (struct in_addr *pipv4Addr) const
 
std::vector< unsigned char > GetGroup () const
 
int GetReachabilityFrom (const CNetAddr *paddrPartner=NULL) const
 Calculates a metric for how reachable (*this) is from a given partner. More...
 
 CNetAddr (const struct in6_addr &pipv6Addr, const uint32_t scope=0)
 
bool GetIn6Addr (struct in6_addr *pipv6Addr) const
 
template<typename Stream , typename Operation >
void SerializationOp (Stream &s, Operation ser_action, int nType, int nVersion)
 

Public Attributes

 ADD_SERIALIZE_METHODS
 

Protected Attributes

unsigned char ip [16]
 
uint32_t scopeId
 

Friends

class CSubNet
 
bool operator== (const CNetAddr &a, const CNetAddr &b)
 
bool operator!= (const CNetAddr &a, const CNetAddr &b)
 
bool operator< (const CNetAddr &a, const CNetAddr &b)
 

Detailed Description

IP address (IPv6, or IPv4 using mapped IPv6 range (::FFFF:0:0/96))

Definition at line 30 of file netaddress.h.

Constructor & Destructor Documentation

◆ CNetAddr() [1/3]

CNetAddr::CNetAddr ( )

Definition at line 59 of file netaddress.cpp.

Here is the call graph for this function:

◆ CNetAddr() [2/3]

CNetAddr::CNetAddr ( const struct in_addr &  ipv4Addr)

Definition at line 64 of file netaddress.cpp.

Here is the call graph for this function:

◆ CNetAddr() [3/3]

CNetAddr::CNetAddr ( const struct in6_addr &  pipv6Addr,
const uint32_t  scope = 0 
)

Definition at line 69 of file netaddress.cpp.

Here is the call graph for this function:

Member Function Documentation

◆ GetByte()

unsigned int CNetAddr::GetByte ( int  n) const

Definition at line 75 of file netaddress.cpp.

Here is the caller graph for this function:

◆ GetGroup()

std::vector< unsigned char > CNetAddr::GetGroup ( ) const

Definition at line 301 of file netaddress.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetHash()

uint64_t CNetAddr::GetHash ( ) const

Definition at line 368 of file netaddress.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetIn6Addr()

bool CNetAddr::GetIn6Addr ( struct in6_addr *  pipv6Addr) const

Definition at line 293 of file netaddress.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetInAddr()

bool CNetAddr::GetInAddr ( struct in_addr *  pipv4Addr) const

Definition at line 285 of file netaddress.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetNetwork()

enum Network CNetAddr::GetNetwork ( ) const

Definition at line 229 of file netaddress.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetReachabilityFrom()

int CNetAddr::GetReachabilityFrom ( const CNetAddr paddrPartner = NULL) const

Calculates a metric for how reachable (*this) is from a given partner.

Definition at line 390 of file netaddress.cpp.

Here is the call graph for this function:

◆ Init()

void CNetAddr::Init ( )

Definition at line 18 of file netaddress.cpp.

Here is the caller graph for this function:

◆ IsIPv4()

bool CNetAddr::IsIPv4 ( ) const

Definition at line 80 of file netaddress.cpp.

Here is the caller graph for this function:

◆ IsIPv6()

bool CNetAddr::IsIPv6 ( ) const

Definition at line 85 of file netaddress.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsLocal()

bool CNetAddr::IsLocal ( ) const

Definition at line 168 of file netaddress.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsMulticast()

bool CNetAddr::IsMulticast ( ) const

Definition at line 182 of file netaddress.cpp.

Here is the call graph for this function:

◆ IsRFC1918()

bool CNetAddr::IsRFC1918 ( ) const

Definition at line 90 of file netaddress.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsRFC2544()

bool CNetAddr::IsRFC2544 ( ) const

Definition at line 98 of file netaddress.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsRFC3849()

bool CNetAddr::IsRFC3849 ( ) const

Definition at line 120 of file netaddress.cpp.

Here is the call graph for this function:

◆ IsRFC3927()

bool CNetAddr::IsRFC3927 ( ) const

Definition at line 103 of file netaddress.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsRFC3964()

bool CNetAddr::IsRFC3964 ( ) const

Definition at line 125 of file netaddress.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsRFC4193()

bool CNetAddr::IsRFC4193 ( ) const

Definition at line 147 of file netaddress.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsRFC4380()

bool CNetAddr::IsRFC4380 ( ) const

Definition at line 136 of file netaddress.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsRFC4843()

bool CNetAddr::IsRFC4843 ( ) const

Definition at line 158 of file netaddress.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsRFC4862()

bool CNetAddr::IsRFC4862 ( ) const

Definition at line 141 of file netaddress.cpp.

Here is the caller graph for this function:

◆ IsRFC5737()

bool CNetAddr::IsRFC5737 ( ) const

Definition at line 113 of file netaddress.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsRFC6052()

bool CNetAddr::IsRFC6052 ( ) const

Definition at line 130 of file netaddress.cpp.

Here is the caller graph for this function:

◆ IsRFC6145()

bool CNetAddr::IsRFC6145 ( ) const

Definition at line 152 of file netaddress.cpp.

Here is the caller graph for this function:

◆ IsRFC6598()

bool CNetAddr::IsRFC6598 ( ) const

Definition at line 108 of file netaddress.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsRoutable()

bool CNetAddr::IsRoutable ( ) const

Definition at line 224 of file netaddress.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsTor()

bool CNetAddr::IsTor ( ) const

Definition at line 163 of file netaddress.cpp.

Here is the caller graph for this function:

◆ IsValid()

bool CNetAddr::IsValid ( ) const

Definition at line 188 of file netaddress.cpp.

Here is the caller graph for this function:

◆ SerializationOp()

template<typename Stream , typename Operation >
void CNetAddr::SerializationOp ( Stream &  s,
Operation  ser_action,
int  nType,
int  nVersion 
)
inline

Definition at line 88 of file netaddress.h.

◆ SetIP()

void CNetAddr::SetIP ( const CNetAddr ip)

Definition at line 24 of file netaddress.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetRaw()

void CNetAddr::SetRaw ( Network  network,
const uint8_t *  data 
)

Set raw IPv4 or IPv6 address (in network byte order)

Note
Only NET_IPV4 and NET_IPV6 are allowed for network.

Definition at line 29 of file netaddress.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetSpecial()

bool CNetAddr::SetSpecial ( const std::string &  strName)

Definition at line 45 of file netaddress.cpp.

Here is the call graph for this function:

◆ ToString()

std::string CNetAddr::ToString ( ) const

Definition at line 265 of file netaddress.cpp.

Here is the call graph for this function:

◆ ToStringIP()

std::string CNetAddr::ToStringIP ( ) const

Definition at line 243 of file netaddress.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

Friends And Related Function Documentation

◆ CSubNet

friend class CSubNet
friend

Definition at line 92 of file netaddress.h.

◆ operator!=

bool operator!= ( const CNetAddr a,
const CNetAddr b 
)
friend

Definition at line 275 of file netaddress.cpp.

◆ operator<

bool operator< ( const CNetAddr a,
const CNetAddr b 
)
friend

Definition at line 280 of file netaddress.cpp.

◆ operator==

bool operator== ( const CNetAddr a,
const CNetAddr b 
)
friend

Definition at line 270 of file netaddress.cpp.

Member Data Documentation

◆ ADD_SERIALIZE_METHODS

CNetAddr::ADD_SERIALIZE_METHODS

Definition at line 85 of file netaddress.h.

◆ ip

unsigned char CNetAddr::ip[16]
protected

Definition at line 33 of file netaddress.h.

◆ scopeId

uint32_t CNetAddr::scopeId
protected

Definition at line 34 of file netaddress.h.


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