5 #ifndef BITCOIN_NETADDRESS_H 6 #define BITCOIN_NETADDRESS_H 8 #if defined(HAVE_CONFIG_H) 40 explicit CNetAddr(
const struct in_addr& ipv4Addr);
81 unsigned int GetByte(
int n)
const;
83 bool GetInAddr(
struct in_addr* pipv4Addr)
const;
84 std::vector<unsigned char>
GetGroup()
const;
87 explicit CNetAddr(
const struct in6_addr& pipv6Addr,
const uint32_t scope = 0);
88 bool GetIn6Addr(
struct in6_addr* pipv6Addr)
const;
96 template <
typename Stream,
typename Operation>
133 template <
typename Stream,
typename Operation>
150 CService(
const struct in_addr& ipv4Addr,
unsigned short port);
151 explicit CService(
const struct sockaddr_in& addr);
152 unsigned short GetPort()
const;
153 bool GetSockAddr(
struct sockaddr* paddr, socklen_t *addrlen)
const;
158 std::vector<unsigned char>
GetKey()
const;
163 CService(
const struct in6_addr& ipv6Addr,
unsigned short port);
164 explicit CService(
const struct sockaddr_in6& addr);
168 template <
typename Stream,
typename Operation>
175 #endif // BITCOIN_NETADDRESS_H int GetReachabilityFrom(const CNetAddr *paddrPartner=nullptr) const
Calculates a metric for how reachable (*this) is from a given partner.
std::string ToStringPort() const
unsigned short GetPort() const
void SetIP(const CNetAddr &ip)
friend bool operator==(const CService &a, const CService &b)
CNetAddr network
Network (base) address.
bool GetInAddr(struct in_addr *pipv4Addr) const
std::string ToString() const
bool GetIn6Addr(struct in6_addr *pipv6Addr) const
BigEndian< I > WrapBigEndian(I &n)
enum Network GetNetwork() const
std::vector< unsigned char > GetGroup() const
friend bool operator!=(const CNetAddr &a, const CNetAddr &b)
friend bool operator!=(const CSubNet &a, const CSubNet &b)
bool GetSockAddr(struct sockaddr *paddr, socklen_t *addrlen) const
friend bool operator!=(const CService &a, const CService &b)
std::string ToStringIP() const
A combination of a network address (CNetAddr) and a (TCP) port.
friend bool operator<(const CService &a, const CService &b)
std::vector< unsigned char > GetKey() const
unsigned int GetByte(int n) const
friend bool operator==(const CSubNet &a, const CSubNet &b)
bool valid
Is this value valid? (only used to signal parse errors)
void SerializationOp(Stream &s, Operation ser_action)
bool Match(const CNetAddr &addr) const
uint8_t netmask[16]
Netmask, in network byte order.
IP address (IPv6, or IPv4 using mapped IPv6 range (::FFFF:0:0/96))
friend bool operator<(const CNetAddr &a, const CNetAddr &b)
std::string ToString() const
friend bool operator==(const CNetAddr &a, const CNetAddr &b)
std::string ToStringIPPort() const
friend bool operator<(const CSubNet &a, const CSubNet &b)
void SerializationOp(Stream &s, Operation ser_action)
void SetRaw(Network network, const uint8_t *data)
Set raw IPv4 or IPv6 address (in network byte order)
bool SetSpecial(const std::string &strName)
std::string ToString() const
bool SetSockAddr(const struct sockaddr *paddr)
bool SetInternal(const std::string &name)
Transform an arbitrary string into a non-routable ipv6 address.
void SerializationOp(Stream &s, Operation ser_action)