4 #include <initializer_list>
33 std::copy(addr, addr + 6, m_Address.begin());
39 explicit MacAddress(
const std::array<uint8_t, 6>& addr) : m_Address(addr)
50 template <typename T, typename = typename std::enable_if<std::is_convertible<T, std::string>::value>::type>
61 MacAddress(uint8_t firstOctet, uint8_t secondOctet, uint8_t thirdOctet, uint8_t fourthOctet, uint8_t fifthOctet,
63 : m_Address{ firstOctet, secondOctet, thirdOctet, fourthOctet, fifthOctet, sixthOctet }
72 if (octets.size() != m_Address.size())
74 throw std::invalid_argument(
"Invalid initializer list size, should be 6");
76 std::copy(octets.begin(), octets.end(), std::begin(m_Address));
84 return m_Address == other.m_Address;
101 if (octets.size() !=
sizeof(m_Address))
103 throw std::invalid_argument(
"Invalid initializer list size, should be 6");
106 std::copy(octets.begin(), octets.end(), m_Address.begin());
114 return m_Address.data();
132 *arr =
new uint8_t[m_Address.size()];
133 std::copy(m_Address.begin(), m_Address.end(), *arr);
141 std::copy(m_Address.begin(), m_Address.end(), arr);
150 std::array<uint8_t, 6> m_Address{};
153 inline std::ostream& operator<<(std::ostream& oss,
const pcpp::MacAddress& macAddress)
Definition: MacAddress.h:21
MacAddress & operator=(std::initializer_list< uint8_t > octets)
Definition: MacAddress.h:99
MacAddress(const T &addr)
Definition: MacAddress.h:51
static MacAddress Zero
A static value representing a zero value of MAC address, meaning address of value "00:00:00:00:00:00"...
Definition: MacAddress.h:145
MacAddress(const std::string &addr)
MacAddress(uint8_t firstOctet, uint8_t secondOctet, uint8_t thirdOctet, uint8_t fourthOctet, uint8_t fifthOctet, uint8_t sixthOctet)
Definition: MacAddress.h:61
MacAddress(const uint8_t addr[6])
Definition: MacAddress.h:31
std::array< uint8_t, 6 > toByteArray() const
Definition: MacAddress.h:122
static MacAddress Broadcast
A static value representing a broadcast MAC address, meaning address of value "ff:ff:ff:ff:ff:ff".
Definition: MacAddress.h:147
MacAddress(const std::array< uint8_t, 6 > &addr)
Definition: MacAddress.h:39
bool operator==(const MacAddress &other) const
Definition: MacAddress.h:82
MacAddress(std::initializer_list< uint8_t > octets)
Definition: MacAddress.h:70
void copyTo(uint8_t arr[6]) const
Definition: MacAddress.h:139
const uint8_t * getRawData() const
Definition: MacAddress.h:112
void copyTo(uint8_t **arr) const
Definition: MacAddress.h:130
std::string toString() const
bool operator!=(const MacAddress &other) const
Definition: MacAddress.h:90
The main namespace for the PcapPlusPlus lib.