5 #ifndef BITCOIN_NETADDRESS_H
6 #define BITCOIN_NETADDRESS_H
8 #if defined(HAVE_CONFIG_H)
9 #include "config/bitcoin-config.h"
38 CNetAddr(
const struct in_addr& ipv4Addr);
72 unsigned int GetByte(
int n)
const;
74 bool GetInAddr(
struct in_addr* pipv4Addr)
const;
75 std::vector<unsigned char>
GetGroup()
const;
78 CNetAddr(
const struct in6_addr& pipv6Addr,
const uint32_t scope = 0);
79 bool GetIn6Addr(
struct in6_addr* pipv6Addr)
const;
87 template <
typename Stream,
typename Operation>
124 template <
typename Stream,
typename Operation>
141 CService(
const struct in_addr& ipv4Addr,
unsigned short port);
142 CService(
const struct sockaddr_in& addr);
144 void SetPort(
unsigned short portIn);
145 unsigned short GetPort()
const;
146 bool GetSockAddr(
struct sockaddr* paddr, socklen_t *addrlen)
const;
151 std::vector<unsigned char>
GetKey()
const;
156 CService(
const struct in6_addr& ipv6Addr,
unsigned short port);
157 CService(
const struct sockaddr_in6& addr);
161 template <
typename Stream,
typename Operation>
164 unsigned short portN = htons(
port);
166 if (ser_action.ForRead())
IP address (IPv6, or IPv4 using mapped IPv6 range (::FFFF:0:0/96))
std::string ToStringIP() const
void SetIP(const CNetAddr &ip)
void SetRaw(Network network, const uint8_t *data)
Set raw IPv4 or IPv6 address (in network byte order)
bool GetIn6Addr(struct in6_addr *pipv6Addr) const
std::string ToString() const
bool GetInAddr(struct in_addr *pipv4Addr) const
friend bool operator==(const CNetAddr &a, const CNetAddr &b)
std::vector< unsigned char > GetGroup() const
bool SetSpecial(const std::string &strName)
int GetReachabilityFrom(const CNetAddr *paddrPartner=NULL) const
Calculates a metric for how reachable (*this) is from a given partner.
friend bool operator!=(const CNetAddr &a, const CNetAddr &b)
unsigned int GetByte(int n) const
enum Network GetNetwork() const
void SerializationOp(Stream &s, Operation ser_action)
friend bool operator<(const CNetAddr &a, const CNetAddr &b)
A combination of a network address (CNetAddr) and a (TCP) port.
std::string ToStringIPPort() const
std::string ToString() const
friend bool operator<(const CService &a, const CService &b)
void SetPort(unsigned short portIn)
friend bool operator!=(const CService &a, const CService &b)
unsigned short GetPort() const
bool SetSockAddr(const struct sockaddr *paddr)
friend bool operator==(const CService &a, const CService &b)
void SerializationOp(Stream &s, Operation ser_action)
std::string ToStringPort() const
bool GetSockAddr(struct sockaddr *paddr, socklen_t *addrlen) const
std::vector< unsigned char > GetKey() const
friend bool operator!=(const CSubNet &a, const CSubNet &b)
bool valid
Is this value valid? (only used to signal parse errors)
CNetAddr network
Network (base) address.
friend bool operator==(const CSubNet &a, const CSubNet &b)
void SerializationOp(Stream &s, Operation ser_action)
uint8_t netmask[16]
Netmask, in network byte order.
std::string ToString() const
friend bool operator<(const CSubNet &a, const CSubNet &b)
bool Match(const CNetAddr &addr) const