1 #ifndef PCAPPP_IP_ADDRESSES 2 #define PCAPPP_IP_ADDRESSES 38 IPv4Address(uint32_t addrAsInt) { memcpy(m_Bytes, &addrAsInt,
sizeof(m_Bytes)); }
44 IPv4Address(
const uint8_t bytes[4]) { memcpy(m_Bytes, bytes,
sizeof(m_Bytes)); }
57 inline uint32_t
toInt()
const;
62 const uint8_t*
toBytes()
const {
return m_Bytes; }
128 memcpy(&addr, m_Bytes,
sizeof(m_Bytes));
152 IPv6Address(
const uint8_t bytes[16]) { memcpy(m_Bytes, bytes,
sizeof(m_Bytes)); }
164 const uint8_t*
toBytes()
const {
return m_Bytes; }
198 void copyTo(uint8_t** arr,
size_t& length)
const;
205 void copyTo(uint8_t* arr)
const { memcpy(arr, m_Bytes,
sizeof(m_Bytes)); }
276 IPAddress(
const std::string& addrAsString);
300 std::string
toString()
const {
return (getType() == IPv4AddressType) ? m_IPv4.toString() : m_IPv6.toString(); }
305 bool isValid()
const {
return (getType() == IPv4AddressType) ? m_IPv4.isValid() : m_IPv6.isValid(); }
310 bool isIPv4()
const {
return getType() == IPv4AddressType; }
315 bool isIPv6()
const {
return getType() == IPv6AddressType; }
356 return rhs.
isIPv4() ? (m_IPv4 == rhs.m_IPv4) :
false;
358 return rhs.
isIPv6() ? m_IPv6 == rhs.m_IPv6 :
false;
367 return rhs.
isIPv4() ? (m_IPv4 < rhs.m_IPv4) :
true;
369 return rhs.
isIPv6() ? m_IPv6 < rhs.m_IPv6 :
false;
374 m_Type = IPv4AddressType;
381 m_Type = IPv6AddressType;
The main namespace for the PcapPlusPlus lib.
const uint8_t * toBytes() const
Definition: IpAddress.h:164
IPv4Address()
Definition: IpAddress.h:32
IPv4Address(const uint8_t bytes[4])
Definition: IpAddress.h:44
AddressType
Definition: IpAddress.h:242
bool isIPv4() const
Definition: IpAddress.h:310
bool isValid() const
Definition: IpAddress.h:74
static const IPv4Address Zero
Definition: IpAddress.h:116
bool operator==(const IPv4Address &rhs) const
Definition: IpAddress.h:79
const uint8_t * toBytes() const
Definition: IpAddress.h:62
bool operator<(const IPAddress &rhs) const
Definition: IpAddress.h:361
bool operator==(const IPAddress &rhs) const
Definition: IpAddress.h:353
bool operator!=(const IPAddress &rhs) const
Definition: IpAddress.h:342
bool operator<(const IPv6Address &rhs) const
Definition: IpAddress.h:185
static const IPv6Address Zero
Definition: IpAddress.h:221
IPv4Address(uint32_t addrAsInt)
Definition: IpAddress.h:38
bool isIPv6() const
Definition: IpAddress.h:315
Definition: IpAddress.h:26
Definition: IpAddress.h:140
const IPv6Address & getIPv6() const
Definition: IpAddress.h:327
const IPv4Address & getIPv4() const
Definition: IpAddress.h:321
bool isValid() const
Definition: IpAddress.h:305
std::string toString() const
Definition: IpAddress.h:300
IPv6Address()
Definition: IpAddress.h:146
bool operator!=(const IPv4Address &rhs) const
Definition: IpAddress.h:89
void copyTo(uint8_t *arr) const
Definition: IpAddress.h:205
IPAddress()
Definition: IpAddress.h:257
bool operator==(const IPv6Address &rhs) const
Definition: IpAddress.h:180
bool operator<(const IPv4Address &rhs) const
Definition: IpAddress.h:84
bool operator!=(const IPv6Address &rhs) const
Definition: IpAddress.h:190
IPAddress(const IPv6Address &addr)
Definition: IpAddress.h:269
IPv6Address(const uint8_t bytes[16])
Definition: IpAddress.h:152
bool isValid() const
Definition: IpAddress.h:175
IPAddress & operator=(const IPv4Address &addr)
Definition: IpAddress.h:372
Definition: IpAddress.h:236
std::string toString() const
bool matchSubnet(const IPv4Address &subnet, const std::string &subnetMask) const
Definition: IpAddress.h:247
IPAddress(const IPv4Address &addr)
Definition: IpAddress.h:263
AddressType getType() const
Definition: IpAddress.h:294
uint32_t toInt() const
Definition: IpAddress.h:125