Dash Core  0.12.2.1
P2P Digital Currency
CNetAddr Class Reference

#include <netaddress.h>

+ Inheritance diagram for CNetAddr:

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)
 
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 (bool fUseGetnameinfo=true) 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
 
 CNetAddr (const struct in6_addr &pipv6Addr)
 
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]
 

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 58 of file netaddress.cpp.

◆ CNetAddr() [2/3]

CNetAddr::CNetAddr ( const struct in_addr &  ipv4Addr)

Definition at line 63 of file netaddress.cpp.

◆ CNetAddr() [3/3]

CNetAddr::CNetAddr ( const struct in6_addr &  pipv6Addr)

Definition at line 68 of file netaddress.cpp.

Member Function Documentation

◆ GetByte()

unsigned int CNetAddr::GetByte ( int  n) const

◆ GetGroup()

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

◆ GetHash()

uint64_t CNetAddr::GetHash ( ) const

◆ GetIn6Addr()

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

Definition at line 294 of file netaddress.cpp.

Referenced by CService::GetSockAddr().

◆ GetInAddr()

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

Definition at line 286 of file netaddress.cpp.

Referenced by CService::GetSockAddr().

◆ GetNetwork()

enum Network CNetAddr::GetNetwork ( ) const

◆ GetReachabilityFrom()

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

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

Definition at line 391 of file netaddress.cpp.

◆ Init()

void CNetAddr::Init ( )

Definition at line 18 of file netaddress.cpp.

Referenced by CNetAddr().

◆ IsIPv4()

◆ IsIPv6()

bool CNetAddr::IsIPv6 ( ) const

Definition at line 83 of file netaddress.cpp.

Referenced by CConnman::BindListenPort(), and CService::GetSockAddr().

◆ IsLocal()

bool CNetAddr::IsLocal ( ) const

◆ IsMulticast()

bool CNetAddr::IsMulticast ( ) const

Definition at line 180 of file netaddress.cpp.

◆ IsRFC1918()

bool CNetAddr::IsRFC1918 ( ) const

◆ IsRFC2544()

bool CNetAddr::IsRFC2544 ( ) const

Definition at line 96 of file netaddress.cpp.

Referenced by IsRoutable().

◆ IsRFC3849()

bool CNetAddr::IsRFC3849 ( ) const

Definition at line 118 of file netaddress.cpp.

Referenced by IsValid().

◆ IsRFC3927()

bool CNetAddr::IsRFC3927 ( ) const

Definition at line 101 of file netaddress.cpp.

Referenced by IsRoutable().

◆ IsRFC3964()

bool CNetAddr::IsRFC3964 ( ) const

Definition at line 123 of file netaddress.cpp.

Referenced by GetGroup(), and GetReachabilityFrom().

◆ IsRFC4193()

bool CNetAddr::IsRFC4193 ( ) const

Definition at line 145 of file netaddress.cpp.

Referenced by IsRoutable().

◆ IsRFC4380()

bool CNetAddr::IsRFC4380 ( ) const

Definition at line 134 of file netaddress.cpp.

Referenced by GetExtNetwork(), and GetGroup().

◆ IsRFC4843()

bool CNetAddr::IsRFC4843 ( ) const

Definition at line 156 of file netaddress.cpp.

Referenced by IsRoutable().

◆ IsRFC4862()

bool CNetAddr::IsRFC4862 ( ) const

Definition at line 139 of file netaddress.cpp.

Referenced by IsRoutable().

◆ IsRFC5737()

bool CNetAddr::IsRFC5737 ( ) const

Definition at line 111 of file netaddress.cpp.

Referenced by IsRoutable().

◆ IsRFC6052()

bool CNetAddr::IsRFC6052 ( ) const

Definition at line 128 of file netaddress.cpp.

Referenced by GetGroup(), and GetReachabilityFrom().

◆ IsRFC6145()

bool CNetAddr::IsRFC6145 ( ) const

Definition at line 150 of file netaddress.cpp.

Referenced by GetGroup(), and GetReachabilityFrom().

◆ IsRFC6598()

bool CNetAddr::IsRFC6598 ( ) const

Definition at line 106 of file netaddress.cpp.

Referenced by IsRoutable().

◆ IsRoutable()

◆ IsTor()

bool CNetAddr::IsTor ( ) const

◆ IsValid()

◆ SerializationOp()

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

Definition at line 87 of file netaddress.h.

◆ SetIP()

void CNetAddr::SetIP ( const CNetAddr ip)

Definition at line 23 of file netaddress.cpp.

Referenced by AdvertiseLocal(), and ProcessMessage().

◆ 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 28 of file netaddress.cpp.

Referenced by CNetAddr().

◆ SetSpecial()

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

Definition at line 44 of file netaddress.cpp.

Referenced by LookupIntern().

◆ ToString()

std::string CNetAddr::ToString ( ) const

Definition at line 266 of file netaddress.cpp.

Referenced by Discover(), and CSubNet::ToString().

◆ ToStringIP()

std::string CNetAddr::ToStringIP ( bool  fUseGetnameinfo = true) const

Friends And Related Function Documentation

◆ CSubNet

friend class CSubNet
friend

Definition at line 91 of file netaddress.h.

◆ operator!=

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

Definition at line 276 of file netaddress.cpp.

◆ operator<

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

Definition at line 281 of file netaddress.cpp.

◆ operator==

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

Definition at line 271 of file netaddress.cpp.

Member Data Documentation

◆ ADD_SERIALIZE_METHODS

CNetAddr::ADD_SERIALIZE_METHODS

Definition at line 84 of file netaddress.h.

◆ ip


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